Php 推送通知脚本中的pack()出现警告
我正在用PHP编写推送通知脚本。Php 推送通知脚本中的pack()出现警告,php,iphone,push-notification,apple-push-notifications,pack,Php,Iphone,Push Notification,Apple Push Notifications,Pack,我正在用PHP编写推送通知脚本。 $deviceToken是正确的,但我在这行有一个警告: $b = pack('H*', str_replace(' ', '', $deviceToken)); 警告如下: 警告:pack()[function.pack]:在第33行的/myurl.com/send\u push\u notification.php中键入H:unliked十六进制数字 而且通知没有到达 你知道为什么吗?我也有同样的问题。 我最终使用了 trim($device_token)
$deviceToken
是正确的,但我在这行有一个警告:
$b = pack('H*', str_replace(' ', '', $deviceToken));
警告如下:
警告:pack()[function.pack]:在第33行的/myurl.com/send\u push\u notification.php中键入H:unliked十六进制数字
而且通知没有到达
你知道为什么吗?我也有同样的问题。
我最终使用了
trim($device_token)
而不是
str_replace(' ', '', $deviceToken)
最后解决了这个问题。我也遇到了同样的问题。最后,我发现我的URL中有一个空格字符!
所以,只要检查一下你的URL,也许这就是错误所在。我也遇到了同样的问题。它解决了我的问题。尝试使用以下代码:
chr(0) . chr(0) . chr(32) . pack('H*', str_replace(' ', '', $item[0])) . chr(0) . chr(strlen($payload)) . $payload;
如果有人仍然存在此问题,请尝试
$deviceToken = pack('H*', str_replace(' ', '', sprintf('%u', CRC32($deviceToken))));
您缺少一个结束符
)
(尽管我猜这是一个复制/粘贴错误,因为它无法解析),而且,当您echo stru_替换(“”,,$deviceToken)时,您会得到什么代码>?是的,对不起,这是一个复制粘贴错误。。。当然,在php脚本中有一个问题:$deviceToken的值是多少?如果它有123ABCZ
,则Z
将触发非法十六进制数字警告。Z可以是任何东西,甚至是换行符/回车符。此外,如果它以0x
开头,它将不起作用(令人烦恼的是,$deviceToken类似于“a9e3a660924c2bf96b6540fe78697bed9fe85332e44323cbe4dbd6b04120eaaf”是的,这对我来说很有效。设备令牌后面有一个空格。当我使用trim($device\u-token)
而不是str\u-replace(“”,$deviceToken)
时,推送通知不会到达iphone设备