1

我正在用 PHP 编写我的推送通知脚本。是$deviceToken正确的,但我在这一行有一个警告:

$b = pack('H*', str_replace(' ', '', $deviceToken));

警告是这样的:

警告:pack() [function.pack]:类型 H:第 33 行 /myurl.com/send_push_notification.php 中的非法十六进制数字

并且通知没有到达。

你知道为什么吗?

4

4 回答 4

2

我有同样的问题。我最终使用

trim($device_token)

代替

str_replace(' ', '', $deviceToken)

最后修复了这个问题。

于 2011-09-27T16:42:03.210 回答
0

我有同样的问题。最后,我发现我的网址中有一个空格字符!所以,只需检查您的网址,也许这就是错误。

于 2014-12-07T21:41:41.840 回答
0

我也遇到了同样的问题。它解决了我的问题。尝试使用以下代码:

chr(0) . chr(0) . chr(32) . pack('H*', str_replace(' ', '', $item[0])) . chr(0) . chr(strlen($payload)) . $payload;  
于 2016-05-26T06:16:46.030 回答
0

如果有人仍然遇到此问题,请尝试

$deviceToken = pack('H*', str_replace(' ', '', sprintf('%u', CRC32($deviceToken))));
于 2019-10-22T11:35:53.117 回答