将数组值视为十六进制而不是ascii

时间:2017-03-15 13:05:21

标签: php arrays hex byte

我有一个十六进制字节字符串,如下所示:

  

4E44B4096780031713077AB80040052F2F0C1335000000046D372B27230F150E04000000FFFFFF020000FFFFFFFFFF

我使用

将它们分成字节
  

$ arr1 = str_split($ str,2);

这给了我一个很好的字节数组。但是,PHP似乎将数组元素视为ascii,而不是hex。这使得我无法对它们制作位掩码等。

如何将这些字节声明为十六进制?

1 个答案:

答案 0 :(得分:0)

十六进制甚至更多的ASCII都不是变量的类型,而且在任何语言中都是如此。

ASCII只是一个字符表,而不是字符串 十六进制是一种表示基数为16的数字的方法,但这种表示本身不再是数字而是字符串。

使用函数hexdec可以将十六进制字符串转换为十进制。由于您有一个十六进制字符串数组,因此可以使用array_map转换每个项目。

$result = array_map('hexdec', str_split($str, 2));