PHP Pack警告:pack():参数未使用

时间:2014-08-28 22:53:46

标签: php encoding pack

我正在

警告:pack():

中未使用的1个参数
 $vector = pack("H*",0x77,0x99); 




 $vector = pack("H*","4A","76");  // with quotes also give same warning

但如果我只使用一个值就没有警告

 $vector = pack("H*",0x77); 

有人知道这个警告吗?

我应该传递什么价值来打包。它应该是十六进制吗?

1 个答案:

答案 0 :(得分:2)

你应该在字符串中传递十六进制数,如下所示:

$vector = pack("H*", "7799");

如果使用0x77,您已经有一个值为77h的数值,即编译器会将值从十六进制转换为二进制 - 不需要在其上使用pack

如果您确实想使用0x77,0x99表示法,请将符号括在引号中并使用以下内容:

$hex="0x77,0x99";
preg_match_all("/0x([0-9A-F]{2})/i", $hex, $out);
$data = pack("H*", join($out[1]));