如何在PHP中将十六进制转换为二进制


How to convert Hex to binary in PHP?

我正在尝试使用socket_write($socket, XXXX , 1);函数将0x01 HEX作为Byte发送。

有一部分文档:

"。。。如果是,服务器将回复模块0x01,如果不是,则重播0x00。服务器必须发送答案-1字节的HEX格式"

有多种选择:

  • 使用pack()函数时,H*格式说明符的字符串参数应不包括0x前缀。

    pack("H*", "01")
    
  • 要将单个十六进制数转换为字节,还可以使用chr()

    chr(0x01)
    

    这里,PHP首先将十六进制文字0x01解释为纯整数1,而chr()将其转换为字符串。反转(用于套接字读取)为ord()

  • 最普遍的替代方法是只使用C字符串转义:

    "'x01"
    

    或者用八进制表示法:

    "'001"
    
  • 这里的hex2bin("01")pack("H*")一样工作。相反方向有bin2hex