我正在用 PHP 编写我的推送通知脚本。是$deviceToken
正确的,但我在这一行有一个警告:
$b = pack('H*', str_replace(' ', '', $deviceToken));
警告是这样的:
警告:pack() [function.pack]:类型 H:第 33 行 /myurl.com/send_push_notification.php 中的非法十六进制数字
并且通知没有到达。
你知道为什么吗?
我正在用 PHP 编写我的推送通知脚本。是$deviceToken
正确的,但我在这一行有一个警告:
$b = pack('H*', str_replace(' ', '', $deviceToken));
警告是这样的:
警告:pack() [function.pack]:类型 H:第 33 行 /myurl.com/send_push_notification.php 中的非法十六进制数字
并且通知没有到达。
你知道为什么吗?
我有同样的问题。我最终使用
trim($device_token)
代替
str_replace(' ', '', $deviceToken)
最后修复了这个问题。
我有同样的问题。最后,我发现我的网址中有一个空格字符!所以,只需检查您的网址,也许这就是错误。
我也遇到了同样的问题。它解决了我的问题。尝试使用以下代码:
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))));