現在の位置: ホーム> 最新記事一覧> PHP文字列をバイナリに変換する方法は? 3つの一般的な方法の分析

PHP文字列をバイナリに変換する方法は? 3つの一般的な方法の分析

gitbox 2025-06-25

PHP文字列をバイナリに変換する方法は? 3つの一般的な方法の分析

PHP開発では、文字列をバイナリに変換することは一般的な要件です。ファイルの処理、データの暗号化、ネットワーク伝送の実行など、バイナリ形式が重要な役割を果たします。 PHPは、文字列とバイナリデータの間の変換を実装するためのさまざまな方法を提供します。以下には、一般的に使用される3つの変換方法が導入されます。

方法1:パック機能を使用します

PHPのパック関数は、データをバイナリ文字列にパッケージ化できます。異なる形式の文字を使用することにより、パッケージ化する方法を制御できます。文字列をバイナリに変換する例は次のとおりです。

 
$str = "Hello World";
$binary = pack('A*', $str);
echo bin2hex($binary);

この例では、パック関数はフォーマット文字 'a*'で使用され、文字列をバイナリデータに変換します。その後、BIN2HEX関数は、出力のために16進形式に変換します。

方法2:ord関数とsprintf関数を使用します

各文字のASCII値をバイナリに変換する必要がある場合は、ORD関数を使用して文字のASCIIコードを取得し、SPRINTF関数を介してバイナリ形式に変換できます。実装するコードは次のとおりです。

 
$str = "Hello World";
$binary = "";
for ($i = 0; $i < strlen($str); $i++) {
    $binary .= sprintf("%08b", ord($str[$i]));
}
echo $binary;

この方法では、SprintFを使用して、文字列内の各文字をループし、ASCII値を取得し、これらの値を8ビットバイナリ文字列に変換し、最終的にそれらを出力に連結します。

方法3:MB_ORD関数とDECBIN関数を使用します

非ASCII文字(中国語など)を含む文字列の場合、MB_ORDおよびDECBIN関数を処理に使用できます。漢字を含むバイナリ変換の処理の例は次のとおりです。

 
function mb_str_to_binary($str) {
    $binary = "";
    $chars = mb_str_split($str);
    foreach ($chars as $char) {
        $binary .= decbin(mb_ord($char));
    }
    return $binary;
}
<p>$str = "こんにちは,世界";<br>
$binary = mb_str_to_binary($str);<br>
echo $binary;<br>

このメソッドは、最初に文字列を文字配列に分解し、MB_ORDを使用して各文字のユニコード値を取得し、最後に各ユニコード値をDeDbinを介してバイナリ表現に変換します。

要約します

PHPでは、文字列をバイナリに変換する方法がいくつかあります。 Pack関数、Sprintf関数を備えたORD関数、およびMB_ORDおよびDECBIN関数を使用して、3つの一般的な方法を紹介します。ニーズに応じて、最適な方法を選択できます。

メソッドに関係なく、コアのアイデアは、文字列の各文字を反復し、対応するバイナリ形式に変換することです。これにより、その後のデータ処理、送信、暗号化操作に便利さが提供されます。