PHP如何解压Apple APNS反馈数据

时间:2009-10-14 18:05:59

标签: php apple-push-notifications feedback

我已成功设法连接到Apple的反馈APNS服务器,但我不确定如何解压缩从fread()获得的二进制数据。有谁知道如何做到这一点?文档说前4个字节是时间戳,接下来的2个是令牌长度,其余是设备令牌。

在调用fread之后,如何将此信息解压缩为可读字符?

2 个答案:

答案 0 :(得分:6)

获得二进制流后,您可以像这样处理它:

while ($data = fread($stream, 38)) {
  $feedback = unpack("N1timestamp/n1length/H*devtoken", $data);
  // Do something
}

$ feedback将是一个包含元素“timestamp”,“length”和“devtoken”的关联数组。

答案 1 :(得分:2)

实际上已经弄明白了,这似乎更可靠:

$arr = unpack("H*", $devconts); 
$rawhex = trim(implode("", $arr));

$feedbackTime = hexdec(substr($rawhex, 0, 8)); 
$feedbackDate = date('Y-m-d H:i', $feedbackTime); 
$feedbackLen = hexdec(substr($rawhex, 8, 4)); 
$feedbackDeviceToken = substr($rawhex, 12, 64);