Menukar Rentetan kepada Tatasusunan Bait dalam PHP
Dalam PHP, terdapat pelbagai cara untuk menukar rentetan, yang mengandungi aksara dan nombor, kepada tatasusunan bait. Sama seperti kaedah getBytes() Java, berikut ialah beberapa pendekatan untuk mencapai penukaran ini:
Menggunakan Fungsi ord()
Gelung setiap aksara dalam rentetan menggunakan strlen(). Untuk setiap aksara, gunakan fungsi ord() untuk mendapatkan nilai integer ASCIInya. Simpan nilai ini dalam tatasusunan atau tatasusunan bait.
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 }
Menggunakan Fungsi unpack()
Fungsi unpack() PHP menawarkan kaedah ringkas untuk menukar rentetan ke dalam tatasusunan berstruktur nilai integer. Ia membenarkan anda mengekstrak dan mentafsir semula aksara dalam rentetan sebagai bait individu.
$byte_array = unpack('C*', 'The quick fox jumped over the lazy brown dog'); var_dump($byte_array);
Perhatikan bahawa nilai dalam tatasusunan $byte_array ialah integer yang mewakili kod ASCII untuk setiap aksara, antara 0 hingga 255.
Memandangkan coretan kod asal yang diberikan, nampaknya anda cuba menukar aksara kepada nilai hex dan bukannya nilai integer. Untuk mencapai matlamat ini, anda boleh menggunakan fungsi bin2hex() selepas mendapatkan kod ASCII watak:
for ($i = 0; $i < strlen($msg); $i++) { $data .= bin2hex(chr(ord($msg[$i]))); // Convert to hex and concatenate }
Nota Tambahan
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menukar Rentetan PHP kepada Array Byte?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!