pack()不能在我的PHP中工作。我需要将int转换为byte

时间:2017-02-10 05:10:02

标签: php byte pack

$fp = fopen('./test.dat','a+');
$a = 123123;
$b = ($a & 0xFF00) >> 8;
$b = pack('c',$b);
fwrite($fp,$b)
fclose($fp);

当我使用此代码时,也许我得到了值'e0',但我得到了'ce b0'。这段代码有什么关系?

1 个答案:

答案 0 :(得分:0)

Pack会获得char,你需要使用dechex来获取e0:这是 live demo

<?php
$a = 123123;
echo $a;
echo "\n";
$b = ($a & 0xFF00) >> 8;
echo $b;
echo "\n";
$c = dechex($b);
$b = pack('c',$b);
echo $b;
echo "\n";
echo $c;

输出:

123123
224
�
e0