$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
。我如何解决这个问题,因为十六进制值是作为字符串生成的?
答案 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。