Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Menukar Rentetan PHP kepada Array Byte?

Bagaimanakah Saya Boleh Menukar Rentetan PHP kepada Array Byte?

Mary-Kate Olsen
Lepaskan: 2024-11-27 18:39:11
asal
233 orang telah melayarinya

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

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
}
Salin selepas log masuk

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);
Salin selepas log masuk

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
}
Salin selepas log masuk

Nota Tambahan

  • Fungsi unpack() mencipta tatasusunan indeks berasaskan 1, di mana elemen pertama diakses dengan $byte_array[1].
  • Tatasusunan bait keluaran boleh ditukar dengan mudah kepada bait[] dalam C#, kerana nilainya berada dalam julat 0-255.
  • Pastikan pelayan destinasi dalam Java menjangkakan tatasusunan bait, bukan rentetan.

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan