PHP でデータを操作する場合、多くの場合、異なる形式間の変換が必要になります。一般的な変換の 1 つは、文字列とバイナリ間の変換です。データを安全に保存するためでも、パフォーマンスを最適化するためでも、これらの形式間の変換方法を理解することが不可欠です。
文字列をバイナリに変換し、その後文字列に戻す方法標準のPHPライブラリにあるのでしょうか?これは、安全なデータの保存と操作に対する一般的なニーズです。
一部のプログラミング言語とは異なり、PHP には文字列をバイナリに直接変換する組み込み関数がありません。ただし、pack() 関数とbase_convert() 関数を組み合わせることで、この機能を実現できます。
バイナリ文字列を元の文字列に変換するには、pack を使用できます。 () とbase_convert()。 Pack() 関数は、フォーマット文字列とバイナリ データの文字列を受け取り、それらを組み合わせて文字列を作成します。この場合、フォーマット文字列は「H*」で、16 進文字列を示します。 Base_convert() 関数は、文字列をある塩基から別の塩基に変換します。この場合、16 進文字列を ASCII 文字セットに変換します。
<code class="php">// Convert binary into a string $string = pack('H*', base_convert('0101001101110100011000010110001101101011', 2, 16));</code>
文字列をバイナリに変換するには、unpack() とbase_convert() を使用できます。 )。 unpack() 関数は、フォーマット文字列と文字列を受け取り、指定されたフォーマットに従って文字列からデータを抽出します。この例では、16 進データを抽出するために形式「H*」を指定します。 Base_convert() 関数は、文字列をある塩基から別の塩基に変換します。ここでは、ASCII 文字列をバイナリ表現を表す 16 進文字列に変換します。
<code class="php">// Convert a string into binary $binary = unpack('H*', 'Stack'); echo base_convert($binary[1], 16, 2);</code>
例を使ってすべてをまとめてみましょう:
<code class="php">// Convert "Stack" to binary $binary = unpack('H*', 'Stack'); $binaryString = base_convert($binary[1], 16, 2); echo "Binary: $binaryString\n"; // Convert binary back to "Stack" $asciiString = pack('H*', base_convert($binaryString, 2, 16)); echo "String: $asciiString\n";</code>
出力:
Binary: 0101001101110100011000010110001101101011 String: Stack
これらの関数を利用することで、効率的に変換できます。 PHP の文字列とバイナリの間。この知識は、データ暗号化、ファイル操作、その他のさまざまなタスクに非常に役立ちます。
以上がPHP で文字列をバイナリに変換して戻すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。