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

Bagaimana untuk menukar data heksadesimal kepada tatasusunan dalam php

PHPz
Lepaskan: 2023-04-26 10:09:24
asal
805 orang telah melayarinya

PHP ialah bahasa skrip sebelah pelayan yang berkuasa yang digunakan secara meluas dalam pembangunan web. Dalam proses pembangunan PHP, kita sering perlu berurusan dengan penukaran dan pemprosesan data. Artikel ini akan memperkenalkan cara menukar data heksadesimal kepada tatasusunan.

Pertama sekali, kita perlu faham apa itu heksadesimal. Secara mudahnya, perenambelasan ialah sistem nombor yang menggunakan 16 nombor untuk mewakili nilai, iaitu 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, dan D. , E dan F . Antaranya, A~F masing-masing mewakili 10~15.

Dalam PHP, kita boleh menggunakan fungsi hex2bin() untuk menukar perenambelasan kepada rentetan. Sebagai contoh, kod berikut menukar rentetan perenambelasan "48656C6C6F20576F726C64" kepada rentetan "Hello World":

echo hex2bin("48656C6C6F20576F726C64");
Salin selepas log masuk

Seterusnya, kita perlu menukar rentetan itu kepada tatasusunan. Kita boleh menggunakan fungsi str_split() untuk memisahkan rentetan kepada aksara individu, dan kemudian menggunakan fungsi ord() untuk menukar aksara kepada kod ASCII. Sebagai contoh, kod berikut membahagi rentetan "Hello World" kepada tatasusunan integer:

$str = "Hello World";
$chars = str_split($str);
$nums = array();
foreach ($chars as $char) {
    $nums[] = ord($char);
}
print_r($nums);
Salin selepas log masuk

Hasil output ialah:

Array
(
    [0] => 72
    [1] => 101
    [2] => 108
    [3] => 108
    [4] => 111
    [5] => 32
    [6] => 87
    [7] => 111
    [8] => 114
    [9] => 108
    [10] => 100
)
Salin selepas log masuk
Salin selepas log masuk

Jika kita telah menukar rentetan perenambelasan ialah rentetan, anda boleh menggabungkan dua coretan kod di atas. Sebagai contoh, kod berikut menukar rentetan perenambelasan "48656C6C6F20576F726C64" kepada tatasusunan integer:

$hex_str = "48656C6C6F20576F726C64";
$str = hex2bin($hex_str);
$chars = str_split($str);
$nums = array();
foreach ($chars as $char) {
    $nums[] = ord($char);
}
print_r($nums);
Salin selepas log masuk

Hasil output ialah:

Array
(
    [0] => 72
    [1] => 101
    [2] => 108
    [3] => 108
    [4] => 111
    [5] => 32
    [6] => 87
    [7] => 111
    [8] => 114
    [9] => 108
    [10] => 100
)
Salin selepas log masuk
Salin selepas log masuk

Selain menggunakan kaedah di atas, kami juga boleh Gunakan fungsi unpack() . Fungsi unpack() boleh membongkar rentetan ke dalam berbilang nilai, mengembalikan tatasusunan bersekutu atau tatasusunan yang diindeks secara berangka. Kita boleh menggunakan aksara pemformatan H*, yang bermaksud menukar rentetan perenambelasan kepada nombor perenambelasan dan membungkusnya menjadi rentetan binari. Sebagai contoh, kod berikut menukar rentetan perenambelasan "48656C6C6F20576F726C64" kepada tatasusunan integer:

$hex_str = "48656C6C6F20576F726C64";
$bin_str = pack("H*", $hex_str);
$nums = unpack("C*", $bin_str);
print_r($nums);
Salin selepas log masuk

Hasil output ialah:

Array
(
    [1] => 72
    [2] => 101
    [3] => 108
    [4] => 108
    [5] => 111
    [6] => 32
    [7] => 87
    [8] => 111
    [9] => 114
    [10] => 108
    [11] => 100
)
Salin selepas log masuk

Menggunakan fungsi unpack() adalah lebih ringkas dan Cekap, tetapi perlu diperhatikan bahawa asterisk (*) dalam nama fungsi fungsi unpack() bermaksud membongkar semua elemen, bukan sebarang format.

Ringkasan: Artikel ini memperkenalkan cara menukar data heksadesimal kepada tatasusunan. Kita boleh menggunakan fungsi hex2bin() untuk menukar perenambelasan kepada rentetan, kemudian gunakan fungsi str_split() untuk membahagikannya kepada aksara individu, dan akhirnya menggunakan fungsi ord() untuk menukar aksara kepada kod ASCII. Di samping itu, kami juga boleh menggunakan fungsi unpack() untuk mencapai penukaran dengan lebih cekap. Kaedah ini akan sangat berguna dalam pembangunan sebenar.

Atas ialah kandungan terperinci Bagaimana untuk menukar data heksadesimal kepada tatasusunan 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