Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menukar rentetan kepada tatasusunan bait dalam php

Bagaimana untuk menukar rentetan kepada tatasusunan bait dalam php

PHPz
PHPzasal
2023-04-23 09:19:131084semak imbas

Dalam pengaturcaraan PHP, kadangkala kita perlu menukar rentetan kepada tatasusunan bait untuk digunakan semasa penghantaran rangkaian atau pemprosesan data. Artikel ini menerangkan cara menukar rentetan kepada tatasusunan bait menggunakan PHP.

Dalam PHP, rentetan boleh ditakrifkan menggunakan petikan tunggal atau berganda. Contohnya:

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

Setiap aksara dalam rentetan mempunyai nilai kod ASCII yang sepadan, yang boleh diperoleh menggunakan fungsi ord(). Contohnya:

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

Untuk menukar rentetan kepada tatasusunan bait, kita perlu terlebih dahulu menukar nilai kod ASCII bagi setiap aksara kepada perwakilan binari, dan kemudian menggabungkan setiap aksara binari menjadi bait. Berikut ialah kod pelaksanaan:

/**
 * 将字符串转换为 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]

Dalam kod di atas, kami menggunakan fungsi strlen() untuk mendapatkan panjang rentetan, dan kemudian gunakan fungsi ord() untuk menulis nilai kod ASCII setiap aksara ke tengah tatasusunan. Tatasusunan akhir yang dikembalikan ialah tatasusunan bait.

Kod di atas hanya menukar rentetan kepada tatasusunan bait Jika ia melibatkan penghantaran rangkaian atau pemprosesan data, anda juga perlu mempertimbangkan isu pesanan bait. Susunan bait dalam PHP adalah konsisten dengan susunan bait hos, jadi tiada penukaran pesanan bait diperlukan.

Walau bagaimanapun, jika anda perlu berinteraksi dengan bahasa lain (seperti Java, C#, dll.), anda perlu mempertimbangkan isu susunan bait. Pada masa ini, anda boleh menggunakan fungsi pack() dan unpack() untuk mengendalikan susunan bait. Untuk kaedah penggunaan khusus, sila rujuk dokumentasi rasmi PHP.

Untuk meringkaskan, menukar rentetan kepada tatasusunan bait dalam PHP boleh dicapai dengan menukar nilai kod ASCII setiap aksara kepada perwakilan binari, dan kemudian menggabungkan setiap aksara binari menjadi bait. Jika terdapat isu endianness yang terlibat, anda boleh menggunakan fungsi pack() dan unpack() untuk menanganinya.

Atas ialah kandungan terperinci Bagaimana untuk menukar rentetan kepada tatasusunan bait dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn