PHP では、pack() 関数を使用してバイト配列を文字列に変換したり、implode() 関数を使用して指定された区切り文字で連結された文字列に変換したりできます。
pack() 関数の使用形式は次のとおりです:
$byteArray = array(0x68, 0x65, 0x6c, 0x6c, 0x6f); $str = pack('C*', ...$byteArray); echo $str; //输出:hello
上記のコードでは、pack() 関数を呼び出して 'C* を渡すことにより、$byteArray はバイト値を含む配列になります。 ' 文字列をフォーマットし、$byteArray を文字列に変換します。 「C」は符号なしバイト (つまり、8 ビット符号なし整数) によるパックを意味し、「*」はすべての要素のパックを意味します。 ...$byteArray を使用して、$byteArray の要素を関数パラメータとして渡します。
implode() 関数は次のように使用できます:
$byteArray = array(0x68, 0x65, 0x6c, 0x6c, 0x6f); $str = implode('', array_map('chr', $byteArray)); echo $str; //输出:hello
この例では、array_map() 関数が $byteArray の各要素に適用され、chr() 関数は次のように使用されます。バイトは対応する ASCII 文字に変換されます。次に、空の文字列を区切り文字として使用して、各文字を文字列に連結します。
さらに、PHP 7.2.0 以降では、hex2bin() 関数を使用して 16 進文字列をバイナリ データに変換できます。
$str = '68656c6c6f'; $byteArray = hex2bin($str); echo $byteArray; //输出:hello
要するに、PHP ではバイト配列を文字列に変換する方法がたくさんあり、自分に合った方法を選択できます。
以上がPHPでバイト配列を文字列に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。