java 2 PHP翻译

问题描述

| 我有用Java编写的这种类型的代码
public static String asHex(byte[] buf) 
{
    StringBuilder strbuf = new StringBuilder(buf.length << 1);
    for (byte aByte : buf) {
        if (((int) aByte & 0xff) < 0x10) {
            strbuf.append(\'0\');
        }
        strbuf.append(Long.toString((int) aByte & 0xff,16));
    }
    return strbuf.toString();
}
这与PHP中的base64_decode相同吗?     

解决方法

您好@James说过:bin2hex会做:
<?php
 $str = \"Hello world!\";
 echo bin2hex($str) . \"<br />\";
?>
会产生与
static public void main(String args[]) {
    String str= \"Hello world!\";
    byte[] x = str.getBytes();
    String s = asHex(x);
    System.out.println (s);
}

public static String asHex (byte buf[]) {
    StringBuffer strbuf = new StringBuffer(buf.length * 2);
    int i;
    for (i = 0; i < buf.length; i++) {
        if (((int) buf[i] & 0xff) < 0x10)
            strbuf.append(\"0\");
        strbuf.append(Long.toString((int) buf[i] & 0xff,16));
    }
   return strbuf.toString();
}
    ,如果您有时间,最简单的查找方法是通过函数和PHP函数运行相同的字符串,然后查看它们是否产生相同的结果。 或者,如果您确实有时间,请阅读此内容,看看是否可以解决。 编辑:经过更多的研究,它似乎只是将字节数组转换为十六进制字符串,正如您所指出的那样,它不是base64编码。 我认为PHP函数等效于bin2hex