7

重複の可能性:
php の pack()。不正な 16 進数の警告

私はアップルのプッシュ通知サービスを利用しています。通知を送信するには、メッセージをバイナリで作成する必要があります。以下の行で次のエラーが発生しました。

警告: pack(): タイプ H: 不正な 16 進数 r

警告: pack(): タイプ H: 不正な 16 進数 y

注意: C:\xampp\htdocs\firecom\FireComAPNS.php の 130 行目の配列から文字列への変換

エラーをスローするコード行は次のとおりです。

$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 に答える