7

可能重复:
php 中的 pack()。非法十六进制数字警告

我正在使用苹果的推送通知服务,为了发送通知,您必须以二进制形式构建消息。我收到以下行的以下错误:

警告:pack():Type H:非法的十六进制数字 r

警告:pack():类型 H:非法十六进制数字 y

注意:第 130 行 C:\xampp\htdocs\firecom\FireComAPNS.php 中的数组到字符串转换

这是引发错误的代码行:

$msg = chr(0).pack('n', 32).pack('H*', $devicetoken).pack('n',strlen($payload)) . $payload;

$devicetoken=773f5436825a7115417d3d1e036da20e806efeef547b7c3fe4da724d97c01b30

我在互联网上搜索了很多,但我不知道如何弄乱二进制,任何关于正在发生的事情的帮助将不胜感激!

4

1 回答 1

0

为 php < 5.4.0 尝试此功能

function hex2bin($hexdata) {
   $bindata="";
   for ($i=0;$i<strlen($hexdata);$i+=2) {
      $bindata.=chr(hexdec(substr($hexdata,$i,2)));
   }

   return $bindata;
}
于 2012-12-17T00:16:49.817 回答