如何将包含十六进制值的字符串转换为PHP中的十六进制值?

时间:2017-06-16 21:50:33

标签: php

$a = pack("v","0xABCD");
$b = pack("v",0xABCD);
$w = "test.bin";
$fp = fopen($w,"wb");
$v = fwrite($fp,$a.$b);
$v = fclose($fp);

当我查看hexdump时,它显示:00 00 CD AB。忽略$a的字符串内容,正确插入$b。我如何解决这个问题,因为十六进制值是作为字符串生成的?

1 个答案:

答案 0 :(得分:0)

让我自己使用一些调整,一个很少使用的PHP字符串函数和备用pack()格式代码:

$a=pack("h*",strrev("ABCD"));
$b=pack("v",0xABCD); // Correct
$w="test.bin";$fp=fopen($w,"wb");$v=fwrite($fp,$a.$b);$v=fclose($fp);

现在两者都显示相同。

FWIW。