Я немного пытаюсь отправить шестнадцатеричное значение устройству, подключенному к моему серверу сокетов PHP.Отправить как hex в PHP
У меня есть этот код:
<?PHP
# 7e hex = 126 decimal
$str1 = "\x7e\x00MyData";
sendToDevice($str1); // works :-)
# will send "~<NUL>MyData" and the device sends expected result back
$dec = 126;
$hex = dechex($dec);
$str2 = $hex . "\x00MyData";
sendToDevice($str2); // does not work :-/
# will send "7eMyData" and the device sends nothing back
$dec = 126;
$hex = dechex($dec);
$str3 = "\x$hex\x00MyData";
sendToDevice($str3); // does not work :-/
# will send "\x7e<NUL>MyData" and the device sends error report back
?>
Как я могу отправить его, чтобы он работает как с $ str1?
Что вы подразумеваете под "не работает: - /"? Вы получаете сообщение об ошибке? – Dahaka
Вот что я заметил. Когда он заключен в двойные кавычки, PHP, похоже, оценивает шестнадцатеричные числа. Например, вывод 'print_r (" \ x7f \ x00MyData ");' и 'print_r ('\ x7f \ x00MyData');' не то же самое. Может быть, это поможет вам. Также см. Http://codepad.org/GbbhYouP. – xbonez
Пожалуйста, добавьте исходный код 'sendToDevice()'. В противном случае это просто гадание – hek2mgl