Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Menukar Rentetan PHP kepada Tatasusunan Byte Menggunakan `unpack()`?

Bagaimanakah Saya Boleh Menukar Rentetan PHP kepada Tatasusunan Byte Menggunakan `unpack()`?

Susan Sarandon
Lepaskan: 2024-12-04 06:02:13
asal
704 orang telah melayarinya

How Can I Convert a PHP String into a Byte Array Using `unpack()`?

Menukar Rentetan kepada Tatasusunan Bait dalam PHP

Dalam PHP, anda mungkin menghadapi keperluan untuk menukar rentetan kepada tatasusunan bait, terutamanya apabila antara muka dengan sistem yang mengharapkan format data binari.

GetBytes() Setara dalam PHP

Sama seperti kaedah getBytes() Java, PHP menawarkan fungsi unpack() untuk menyelesaikan tugas ini. Tidak seperti getBytes(), yang mengembalikan tatasusunan bait yang mewakili titik kod Unikod rentetan, unpack() membolehkan anda menentukan format tersuai untuk mengekstrak data tertentu.

Membuka Rentetan ke dalam Tatasusunan Integer

Untuk mendapatkan tatasusunan integer yang mewakili nilai bait rentetan, gunakan unpack() berikut format:

$byte_array = unpack('C*', $string);
Salin selepas log masuk

Rentetan format 'C*' menunjukkan bahawa kami ingin membongkar jujukan aksara yang tidak ditandatangani (dalam julat [0, 255]), mewakili nilai bait rentetan.

Contoh

Mari kita ambil contoh rentetan: "Musang pantas melompat ke atas anjing coklat malas". Menggunakan pendekatan di atas, kita boleh mendapatkan tatasusunan bait yang sepadan:

$string = "The quick fox jumped over the lazy brown dog";
$byte_array = unpack('C*', $string);

var_dump($byte_array);
Salin selepas log masuk

Output:

array(44) {
  [1] => int(84)
  [2] => int(104)
  [3] => int(101)
  [4] => int(32)
  [5] => int(113)
  [6] => int(117)
  [7] => int(105)
  [8] => int(99)
  [9] => int(107)
  [10] => int(32)
  [11] => int(102)
  [12] => int(111)
  [13] => int(120)
  [14] => int(32)
  [15] => int(106)
  [16] => int(117)
  [17] => int(109)
  [18] => int(112)
  [19] => int(101)
  [20] => int(100)
  [21] => int(32)
  [22] => int(111)
  [23] => int(118)
  [24] => int(101)
  [25] => int(114)
  [26] => int(32)
  [27] => int(116)
  [28] => int(104)
  [29] => int(101)
  [30] => int(32)
  [31] => int(108)
  [32] => int(97)
  [33] => int(122)
  [34] => int(121)
  [35] => int(32)
  [36] => int(98)
  [37] => int(114)
  [38] => int(111)
  [39] => int(119)
  [40] => int(110)
  [41] => int(32)
  [42] => int(100)
  [43] => int(111)
  [44] => int(103)
}
Salin selepas log masuk

Seperti yang anda lihat, tatasusunan output mengandungi nilai bait setiap aksara dalam rentetan, diindeks daripada 1.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menukar Rentetan PHP kepada Tatasusunan Byte Menggunakan `unpack()`?. 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