7

Possible Duplicate:
pack() in php. Illegal hex digit warningPHP Warning: paczka(): Typ H: nielegalne cyfra hex błąd r

ja wykorzystując usługę Apple powiadomień Push w celu wysłania powiadomienia, trzeba budować wiadomość w formacie binarnym. Mam następujące błędy na linii poniżej:

Warning: pack(): Type H: illegal hex digit r

Warning: pack(): Type H: illegal hex digit y

Notice: Array to string conversion in C:\xampp\htdocs\firecom\FireComAPNS.php on line 130

Oto linia kodu rzuca błąd:

$msg = chr(0).pack('n', 32).pack('H*', $devicetoken).pack('n',strlen($payload)) . $payload; 

i

$devicetoken=773f5436825a7115417d3d1e036da20e806efeef547b7c3fe4da724d97c01b30 

Szukałem w internecie dużo, ale nie mam pojęcia, jak zadzierać z binarnymi, każda pomoc w tym, co się dzieje, zostanie doceniona!

Odpowiedz

0

Spróbuj tej funkcji dla php < 5.4.0

function hex2bin($hexdata) { 
    $bindata=""; 
    for ($i=0;$i<strlen($hexdata);$i+=2) { 
     $bindata.=chr(hexdec(substr($hexdata,$i,2))); 
    } 

    return $bindata; 
} 
+4

zorientowali się problem. $ deviceToken to tablica zamiast łańcucha. Użyłem $ deviceToken = $ row ['devicetoken']; aby uzyskać właściwy rząd i wszystko jest dobrze. –

+0

Świetne rzeczy. Cieszę się, że znalazłeś to sam. –

+0

To świetnie, że to wymyśliliście, ale ważniejsze jest, aby uświadomić sobie, że 1) tablica, którą minął, została przekształcona na ciąg znaków przez 'pack'; 2) wartością ciągu był tekst 'Array'; 3) Znaki "r" i "y" w tym łańcuchu są niepoprawnymi cyframi szesnastkowymi; 4) ... i dlatego się nie udało. –

Powiązane problemy