ホームページ  >  記事  >  バックエンド開発  >  PHPで文字列をバイト配列に変換する方法

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

PHPz
PHPzオリジナル
2023-04-23 09:19:131125ブラウズ

PHP プログラミングでは、ネットワーク送信やデータ処理中に使用するために、文字列をバイト配列に変換する必要がある場合があります。この記事では、PHP を使用して文字列をバイト配列に変換する方法について説明します。

PHP では、一重引用符または二重引用符を使用して文字列を定義できます。例:

$str1 = 'hello world';
$str2 = "hello world";

文字列内の各文字には、対応する ASCII コード値があり、ord() 関数を使用して取得できます。例:

$ascii = ord('A');
echo $ascii; // 输出 65

文字列をバイト配列に変換するには、まず各文字の ASCII コード値をバイナリ表現に変換し、次に各バイナリ文字をバイトに連結する必要があります。実装コードは次のとおりです。

/**
 * 将字符串转换为 byte 数组
 *
 * @param string $str
 * @return array
 */
function strToByteArray(string $str): array
{
    $len = strlen($str);
    $byteArray = array();
    for ($i = 0; $i < $len; $i++) {
        $byteArray[] = ord($str[$i]);
    }
    return $byteArray;
}

$str = "hello";
$byteArray = strToByteArray($str);
print_r($byteArray); // 输出 [104, 101, 108, 108, 111]

上記のコードでは、strlen() 関数を使用して文字列の長さを取得し、その後 ord()## を使用します。 # それぞれを変換する関数 文字の ASCII コード値が配列に書き込まれます。最終的に返される配列はバイト配列です。

上記のコードは文字列をバイト配列に変換するだけですが、ネットワーク送信やデータ処理が関係する場合は、バイト順序の問題も考慮する必要があります。 PHP のバイト順序はホストのバイト順序と一致しているため、バイト順序の変換は必要ありません。

ただし、他の言語 (Java、C# など) と対話する必要がある場合は、バイト順序の問題を考慮する必要があります。現時点では、

pack() 関数と unpack() 関数を使用してバイト順序を処理できます。具体的な使用方法については、PHPの公式ドキュメントを参照してください。

要約すると、PHP で文字列をバイト配列に変換するには、各文字の ASCII コード値をバイナリ表現に変換し、各バイナリ文字をバイトに連結します。エンディアンの問題が関係している場合は、

pack() 関数と unpack() 関数を使用して問題に対処できます。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。