In PHP, a byte array can be converted into a string using the pack() function, or it can be converted into a string concatenated with a specified delimiter using the implode() function.
The pack() function usage format is as follows:
$byteArray = array(0x68, 0x65, 0x6c, 0x6c, 0x6f); $str = pack('C*', ...$byteArray); echo $str; //输出:hello
In the above code, $byteArray is an array containing byte values, by calling the pack() function and passing 'C*' Format string, convert $byteArray to string. 'C' means packing by unsigned bytes (i.e. 8-bit unsigned integer), '*' means packing all elements. Using ...$byteArray, pass the elements in $byteArray as function parameters.
implode() function can be used like this:
$byteArray = array(0x68, 0x65, 0x6c, 0x6c, 0x6f); $str = implode('', array_map('chr', $byteArray)); echo $str; //输出:hello
In this example, the array_map() function is applied to each element in $byteArray, and the chr() function is used to Bytes are converted to corresponding ASCII characters. Then concatenate each character into a string, using the empty string as delimiter.
In addition, in PHP 7.2.0 and above, you can use the hex2bin() function to convert hexadecimal strings to binary data.
$str = '68656c6c6f'; $byteArray = hex2bin($str); echo $byteArray; //输出:hello
In short, there are many ways to convert byte arrays into strings in PHP, and you can choose the method that suits you.
The above is the detailed content of How to convert byte array to string in php. For more information, please follow other related articles on the PHP Chinese website!