Autor Zpráva
nojan
Profil
Potřeboval bych pomoc s vytvořením HEX řetězce pro odeslání do přístroje. Pokud ho vytvořím ručně (např. $dotaz = "\x10\x5b\x48\xa3\x16";) a vypíšu zobrazí se ASCI znaky kodu jak to potřebuji.
Pokud ho ale chci složit (např. $s=dechex(72); $dotaz = "\x10\x5B\x".$s."\xa3\x16"; nebo i $dotaz = "\x10\x5B".$s."\xa3\x16";) zobrazí se ASCII znaky se "48" místo "H";
Prosím o nakopnutí co dělám špatně.
Děkuji,
juriad
Profil
Musíš sestavit celý znak, nikoli jen část jeho reprezentace. Tedy:
$dotaz = "\x10\x5B". chr(72) ."\xa3\x16";

V PHP řetězci totiž \xHH slouží jako zápis jednoho znaku. Na ten znak se to převede při parsování skriptu a později není možné zjistit, že ten znak vznikl zápisem \xHH.
nojan
Profil
Díky. Jak prosté.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: