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

Php 将数组值视为十六进制而不是ascii,php,arrays,hex,byte,Php,Arrays,Hex,Byte,我有一个十六进制字节字符串,如下所示: 4E44B409670031713077AB80040052F2F0C1335000000046D372B27230F150E04000000FFFF02000FFFFFFFF 我使用 $arr1=str_分割($str,2) 这给了我一个很好的字节数组。然而,PHP似乎将数组元素视为ascii,而不是十六进制。这使得我不可能在他们身上做防毒面具等 如何将这些字节声明为十六进制?十六进制甚至更多ASCII都不是变量类型,在任何语言中都不是 只是一个字符表,

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

4E44B409670031713077AB80040052F2F0C1335000000046D372B27230F150E04000000FFFF02000FFFFFFFF

我使用

$arr1=str_分割($str,2)

这给了我一个很好的字节数组。然而,PHP似乎将数组元素视为ascii,而不是十六进制。这使得我不可能在他们身上做防毒面具等


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

十六进制甚至更多ASCII都不是变量类型,在任何语言中都不是

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

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

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

你能告诉我们你的数组看起来是什么样子吗?雷([0]=>4E[1]=>44[2]=>B4[3]=>09[4]=>67[5]=>80[6]=>03[7]=>17[8]=>13[9]=>07非常感谢。我已经测试过了,它似乎很管用。但是,我还有一个额外的挑战:a)翻转2(或更多)字节的序列,b)组合它们,c)在其上进行掩蔽。我想不出怎么做a&b——每当我做的时候,结果都是错的。关于如何做到这一点有什么想法吗?@Mikkel:因为“吸血鬼”问题是非常不鼓励的,所以我建议为这项任务发布一个新问题(花点时间好好解释一下你想做什么,并展示一个或多个项目的输入和期望输出的示例)。不过,请随意在评论中发布这个新问题的链接。没错,就是这样