PHP конвертировать шестнадцатеричные в байтовые

Я пытаюсь отправить 0x01 HEX как Byte с помощью socket_write ($ socket, XXXX, 1);

Есть часть документации:

«… Если да, сервер ответит на модуль 0x01, если нет — воспроизвести 0x00. Сервер должен отправить ответ — 1 байт
в формате HEX «

Есть ли решение сделать это с помощью PHP?

2

Решение

Есть несколько альтернатив:

  • При использовании pack() функция, строковый аргумент H* спецификатор формата должен не включить 0x префикс.

    pack("H*", "01")
    
  • Для преобразования одного шестнадцатеричного числа в байт вы также можете использовать chr().

    chr(0x01)
    

    Здесь PHP сначала интерпретирует шестнадцатеричный 0x01 в простое число 1, в то время как chr () преобразует его в строку. Реверс (для чтения сокетов) ord().

  • Наиболее распространенная альтернатива — использование только C-строка убегает:

    "\x01"

    Или в восьмеричной записи:

    "\001"
  • hex2bin("01") работает так же, как pack("H*") Вот. И есть bin2hex для противоположного направления.

8

Другие решения

Других решений пока нет …