1

J'écris mon script de notifications push en PHP. le $deviceToken est correct, mais j'ai un avertissement dans cette ligne:Avertissement sur pack() dans le script de notifications push

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

l'avertissement est le suivant:

Attention: pack() [function.pack]: Type H: hex illégale chiffre dans /myurl.com/send_push_notification.php à la ligne 33

Et la notification n'arrive pas.

Savez-vous pourquoi?

+0

Il vous manque une fermeture ')' (bien que je suppose que cela est une erreur de copier/coller, car il ne serait pas analyser) et aussi, qu'est-ce que vous obtenez lorsque vous'echo str_replace ('', '', $ deviceToken); '? – DaveRandom

+0

oui désolé, c'était une erreur copier/coller ... bien sûr, dans le script php il y a le) – JAA

+1

Quelle est la valeur de $ deviceToken? S'il a '123ABCZ', alors le' Z' déclenchera l'avertissement de nombre hexadécimal illégal. Z serait n'importe quoi, même un retour à la ligne/retour chariot. –

Répondre

2

J'ai eu le même problème. je me suis retrouvé à l'aide

trim($device_token) 

au lieu de

str_replace(' ', '', $deviceToken) 

Correction du problème à la fin.

+0

Oui, cela a fonctionné pour moi. Un espace est à l'arrière du jeton de périphérique. – Raptor

+0

alors que j'utilise 'trim ($ device_token)' au lieu de 'str_replace ('', '', $ deviceToken)', les notifications push n'arrivent pas sur les appareils iPhone – lalith458

0

J'ai eu le même problème. Finalement, j'ai trouvé qu'il y avait un caractère espace dans mon URL! Alors, vérifiez votre URL, c'est peut-être l'erreur.

0

J'ai également souffert du même problème. Cela a résolu mon problème. essayez d'utiliser le code ci-dessous:

chr(0) . chr(0) . chr(32) . pack('H*', str_replace(' ', '', $item[0])) . chr(0) . chr(strlen($payload)) . $payload;