Rumah > pembangunan bahagian belakang > masalah PHP > Bagaimana untuk menukar data binari kepada tatasusunan bait dalam php

Bagaimana untuk menukar data binari kepada tatasusunan bait dalam php

PHPz
Lepaskan: 2023-04-18 14:38:32
asal
752 orang telah melayarinya

Dalam pembangunan, kita selalunya perlu menghantar data dalam bentuk binari Pada masa ini, kita perlu menukar data binari kepada tatasusunan bait supaya data boleh dihantar dengan lebih stabil dan cekap semasa proses penghantaran. Dalam PHP, cara untuk mencapai fungsi ini adalah melalui fungsi pek dan fungsi bongkar Mari kita belajar tentangnya bersama-sama.

  1. fungsi pek

Fungsi pek ialah fungsi pembungkusan data binari dalam php Ia boleh membungkus data yang ditentukan ke dalam rentetan binari mengikut format yang ditentukan. Antaranya, parameter rentetan format ditentukan mengikut susunan bait yang akan dibungkus, dan setiap aksara format sepadan dengan jenis data. Berikut ialah penggunaan asas fungsi pek:

string pack ( string $format [, mixed $args [, mixed $... ]] )
Salin selepas log masuk

Antaranya, parameter $format ialah rentetan format dan $args ialah data yang perlu dibungkus.

Yang berikut menggunakan contoh untuk menggambarkan penggunaan fungsi pek:

$binary_str = pack("C*", 67, 119, 105, 107, 105);
echo $binary_str;
Salin selepas log masuk

Dalam contoh ini, rentetan format "C*" bermaksud pembungkusan mengikut aksara dan parameter args ialah 67, 119, 105, 107, 105. Hasil pelaksanaan ialah:

Cwiki
Salin selepas log masuk

Iaitu, rentetan yang terdiri daripada tatasusunan aksara 67, 119, 105, 107, 105 dibungkus dalam mod aksara dan rentetan "Cwiki" dikembalikan.

Selain kaedah aksara, fungsi pek juga menyokong pelbagai kaedah pembungkusan lain, seperti integer (I), integer panjang (L), double precision (d), dsb. Berikut ialah beberapa aksara format yang biasa digunakan:

  • a: rentetan yang ditamatkan nol
  • A: rentetan yang dipenuhi ruang
  • c: aksara yang ditandatangani
  • C: unsigned char
  • s: signed short (sentiasa 16 bit, machine byte order)
  • S: unsigned short (sentiasa 16 bit, machine byte order)
  • n: pendek tidak ditandatangani (sentiasa 16 bit, susunan bait endian besar)
  • v: pendek tidak ditandatangani (sentiasa 16 bit, susunan bait endian kecil)
  • i: integer bertanda (saiz dan bait bergantung kepada mesin pesanan)
  • I: integer tidak ditandatangani (saiz bergantung kepada mesin dan susunan bait)
  • l: panjang ditandatangani (sentiasa 32 bit, susunan bait mesin)
  • L: panjang tidak ditandatangani ( sentiasa 32 bit, pesanan bait mesin)
  • N: panjang tidak ditandatangani (sentiasa 32 bit, susunan bait endian besar)
  • V: panjang tidak ditandatangani (sentiasa 32 bit, pesanan bait endian kecil )
  • f: terapung (saiz dan perwakilan bergantung pada mesin)
  • d: dua kali ganda (saiz dan perwakilan bergantung pada mesin)
  1. fungsi buka bungkusan

Fungsi unpack ialah fungsi unpack data binari dalam PHP Ia boleh membongkar rentetan data binari ke dalam jenis data tertentu. Seperti fungsi pek, kita boleh membongkar data binari kepada pembolehubah yang mewakili jenis data yang berbeza dengan menentukan parameter rentetan format dan rentetan data. Berikut ialah penggunaan asas fungsi pembongkaran:

array unpack ( string $format , string $data )
Salin selepas log masuk

Antaranya, parameter $format ialah rentetan format dan $data ialah data yang perlu dibongkar.

Yang berikut menggunakan contoh untuk menggambarkan penggunaan fungsi unpack:

$binary_str = "Cwiki";
$unpacked = unpack("C*",$binary_str);
print_r($unpacked);
Salin selepas log masuk

Dalam contoh ini, $binary_str ialah rentetan data binari "Cwiki", dan parameter $format ialah "C*". Hasil pelaksanaan ialah:

Array
(
    [1] => 67
    [2] => 119
    [3] => 105
    [4] => 107
    [5] => 105
)
Salin selepas log masuk

Iaitu, rentetan data binari "Cwiki" dibongkar dalam mod aksara dan tatasusunan yang mewakili aksara berbeza diperolehi.

Selain kaedah aksara, fungsi unpack juga menyokong pelbagai kaedah pembongkaran yang lain, dan surat-menyurat antara aksara format dan aksara format fungsi pek adalah satu dengan satu.

Ringkasnya, melalui gabungan penggunaan fungsi pek dan fungsi unpack, kita boleh menukar sebarang data ke dalam rentetan binari dan membongkar pelbagai jenis data daripada rentetan binari, dengan itu merealisasikan Fungsi binari PHP untuk ditukar kepada bait tatasusunan.

Atas ialah kandungan terperinci Bagaimana untuk menukar data binari kepada tatasusunan bait dalam php. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan