PHP将字节转换为字节数组

时间:2019-07-15 19:52:51

标签: php arrays byte converters

我的代码收到了一些带有48656C6C6F这样的字节字段的json,并且我试图将其转换成数组array[0] = 48, array[1]=65 ...这样的字节对,以便与每个字节一起工作。

实际上,我已经制作了此旁路函数以拥有数组:

function Array_conv($hex){
    $chunks = str_split($hex, 2);
    $result = implode(',', $chunks);
    return $result;
}

问题是,有一种正确的方法可以转换为字节数组,或转换为类似0x48的十六进制。

谢谢!

1 个答案:

答案 0 :(得分:0)

PHP中的字符串非常适合访问数组中的每个字节。

$hex = "48656C6C6F";
$string = hex2bin($hex);
var_dump($string);  //string(5) "Hello"

函数strlen()返回字节的长度。通过简单的for循环,您可以获得每个字节。使用ord(),您可以将字节获取为0到255之间的无符号整数。

$byteLen = strlen($string);
for($i=0; $i < $byteLen; $i++){
  $byte = $string[$i];
  echo ord($byte).",";
}

输出:

72,101,108,108,111,