ホームページ > バックエンド開発 > PHPチュートリアル > PHP 文字列をバイト配列に変換するにはどうすればよいですか?

PHP 文字列をバイト配列に変換するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-11-27 18:39:11
オリジナル
233 人が閲覧しました

How Can I Convert a PHP String to a Byte Array?

PHP で文字列をバイト配列に変換する

PHP では、文字と数字を含む文字列をバイト配列に変換するさまざまな方法があります。バイト配列。 Java の getBytes() メソッドと同様に、この変換を実現するためのいくつかのアプローチを次に示します。

ord() 関数の使用

使用して文字列内の各文字をループします。 strlen()。各文字について、 ord() 関数を使用して、その ASCII 整数値を取得します。これらの値を配列またはバイト配列に保存します。

for ($i = 0; $i < strlen($msg); $i++) {
    $data[] = ord($msg[$i]); // Store in an array
    // or
    $byte_array .= ord($msg[$i]); // Concatenate in a byte array
}
ログイン後にコピー

unpack() 関数の使用

PHP の unpack() 関数は、文字列を変換するための簡潔なメソッドを提供します。整数値の構造化配列に変換します。これにより、文字列内の文字を個別のバイトとして抽出して再解釈できます。

$byte_array = unpack('C*', 'The quick fox jumped over the lazy brown dog');
var_dump($byte_array);
ログイン後にコピー

$byte_array 配列の値は、各文字の ASCII コードを表す 0 ~ 255 の整数であることに注意してください。

提供された元のコード スニペットを考慮すると、文字を整数ではなく 16 進値に変換しようとしていたようです。価値観。これを実現するには、文字の ASCII コードを取得した後に bin2hex() 関数を使用します。

for ($i = 0; $i < strlen($msg); $i++) {
    $data .= bin2hex(chr(ord($msg[$i]))); // Convert to hex and concatenate
}
ログイン後にコピー

補足

  • unpack() 関数1 から始まるインデックス配列を作成します。最初の要素は次のようにアクセスされます。 $byte_array[1].
  • 値が 0 ~ 255 の範囲内にあるため、出力バイト配列は C# の byte[] に簡単に変換できます。
  • 宛先サーバーが次の形式であることを確認してください。 Java は文字列ではなくバイト配列を期待しています。

以上がPHP 文字列をバイト配列に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート