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
Susan Sarandonasal
2024-12-04 06:02:13663semak imbas

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);

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);

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)
}

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!

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