PHP でデータを操作する場合、多くの場合、異なる形式の間で変換する必要があります。一般的な変換の 1 つは、文字列とバイナリ間の変換です。データを安全に保存するためでも、パフォーマンスを最適化するためでも、これらの形式間の変換方法を理解することが不可欠です。
文字列をバイナリに変換し、その後文字列に戻す方法標準のPHPライブラリにあるのでしょうか?これは、安全なデータ ストレージと操作に対する一般的なニーズです。
一部のプログラミング言語とは異なり、PHP には文字列をバイナリに直接変換する組み込み関数がありません。ただし、pack() 関数とbase_convert() 関数を組み合わせることで、この機能を実現できます。
バイナリ文字列を元の文字列に変換するには、pack を使用できます。 () とbase_convert()。 Pack() 関数は、フォーマット文字列とバイナリ データの文字列を受け取り、それらを組み合わせて文字列を作成します。この場合、フォーマット文字列は「H*」で、16 進文字列を示します。 Base_convert() 関数は、文字列をある塩基から別の塩基に変換します。この場合、16 進数の文字列を ASCII 文字セットに変換します。
// Convert binary into a string
$string = pack('H*', base_convert('0101001101110100011000010110001101101011', 2, 16));
文字列をバイナリに変換するには、 unpack( ) そしてBase_convert()。 unpack() 関数は、フォーマット文字列と文字列を受け取り、指定されたフォーマットに従って文字列からデータを抽出します。この例では、16 進データを抽出するために形式「H*」を指定します。 Base_convert() 関数は、文字列をある塩基から別の塩基に変換します。ここでは、ASCII 文字列をバイナリ表現を表す 16 進文字列に変換します。
// Convert a string into binary
$binary = unpack('H*', 'Stack');
echo base_convert($binary[1], 16, 2);
例を使ってすべてをまとめてみましょう:
// 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";
出力:
Binary: 0101001101110100011000010110001101101011 String: Stack
これらの関数を利用することで、PHP で文字列とバイナリ間の変換を効果的に行うことができます。この知識は、データ暗号化、ファイル操作、その他のさまざまなタスクに非常に役立ちます。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3