перевод PHP Java 2 - PullRequest
       3

перевод PHP Java 2

0 голосов
/ 24 мая 2011

У меня есть код этого типа, написанный на 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();
}

Это то же самое, что base64_decode в PHP?

Ответы [ 2 ]

0 голосов
/ 25 мая 2011

Привет, как сказал @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();
}
0 голосов
/ 24 мая 2011

если у вас есть время, самый простой способ выяснить это - запустить одинаковую строку через вашу функцию и функцию PHP и посмотреть, дают ли они одинаковый результат.Или, если у вас действительно есть свободное время, прочитайте this и посмотрите, сможете ли вы с этим справиться.

EDIT: после более тщательного изучения это выглядит как преобразование байтового массива вшестнадцатеричная строка, как вы указали, не является кодировкой base64.

Я думаю, что функция PHP эквивалентна тому, что она делает, это bin2hex

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...