Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menukar heksadesimal kepada fungsi rentetan dalam php

Bagaimana untuk menukar heksadesimal kepada fungsi rentetan dalam php

PHPz
PHPzasal
2023-04-19 09:15:181038semak imbas

Sebagai bahasa pengaturcaraan sebelah pelayan, PHP mempunyai perpustakaan fungsi yang kaya untuk memudahkan pembangun membangun dengan cepat. PHP menyediakan fungsi untuk menukar heksadesimal kepada rentetan Mari perkenalkan fungsi ini di bawah.

Fungsi untuk menukar perenambelasan kepada rentetan dalam PHP ialah hex2bin(). Fungsinya adalah untuk menukar nombor perenambelasan kepada rentetan.

Kod sampel:

$string = hex2bin('546869732069732061207465737420737472696e67');
echo $string;

Hasil jalankan:

Ini ialah rentetan ujian

Dalam contoh di atas, fungsi hex2bin() Heksadesimal rentetan '546869732069732061207465737420737472696e67' ditukar menjadi rentetan 'Ini adalah rentetan ujian'. Seperti yang anda lihat, rentetan yang ditukar adalah sama dengan rentetan heksadesimal asal.

Perlu diambil perhatian bahawa jika nombor heksadesimal yang dihantar bukan nombor genap digit (iaitu, tidak boleh dibahagikan dengan 2) apabila memanggil fungsi hex2bin(), PHP akan secara automatik menambah ' di penghujung daripada rentetan aksara 0', supaya ia menjadi nombor genap, dan kemudian ditukar.

Kod contoh:

$string = hex2bin('546869732069732061207465737420737472696e670');
echo $string;

Hasil jalankan:

Ini ialah rentetan ujian

Rentetan perenambelasan di sini'54686973206973206120744205737e '20612074206737e' pada akhirnya ditambah secara automatik oleh PHP.

Selain fungsi hex2bin(), terdapat dua fungsi berikut dalam PHP yang boleh menukar nombor heksadesimal kepada rentetan:

  1. fungsi pek():
    pek ( ) fungsi boleh digunakan untuk menukar nombor heksadesimal kepada rentetan. Tidak seperti fungsi hex2bin(), fungsi pack() boleh menukar mengikut format yang berbeza.

Format perihalan:

H - Rentetan heksadesimal (enddian tinggi)
h - Rentetan perenambelasan (enddian rendah)
N - panjang tidak ditandatangani (urutan bait rangkaian)
n - pendek tidak ditandatangani (urutan bait rangkaian)
V - panjang tidak ditandatangani (urutan bait asli)
v - integer pendek tidak ditandatangani (urutan bait asli)

Kod sampel:

$string = pack("H*", '546869732069732061207465737420737472696e67');
echo $string;

Hasil berjalan:

Ini ialah rentetan ujian

Kod ini sama dengan Fungsi hex2bin() digunakan sama. Perbezaannya ialah fungsi pack() boleh menghuraikan rentetan heksadesimal mengikut format yang berbeza.

  1. Fungsi chr(): Fungsi
    chr() digunakan untuk menukar nilai kod ASCII yang ditentukan kepada aksara. Oleh kerana satu bait boleh mewakili 256 aksara yang berbeza, nombor perenambelasan satu bait sepadan dengan nilai kod ASCII. Oleh itu, dengan membelah rentetan perenambelasan kepada dua kumpulan aksara dan menukar setiap kumpulan kepada nilai kod ASCII yang sepadan, rentetan yang ditukar boleh diperolehi.

Kod sampel:

$str = "546869732069732061207465737420737472696e67";
$len = strlen($str);
$res = "";
for ($i = 0; $i < $len; $i += 2) {
    $res .= chr(hexdec(substr($str, $i, 2)));
}
echo $res;

Hasil berjalan:

Ini ialah rentetan ujian

Dalam contoh di atas, kita mula-mula Heksadesimal string $str dibahagikan kepada kumpulan dua aksara, jadi panjang $str ialah nombor genap. Lelaran melalui setiap kumpulan melalui gelung for, panggil fungsi hexdec() untuk menukarnya kepada nombor perpuluhan, kemudian panggil fungsi chr() untuk menukarnya kepada aksara yang sepadan dan tambahkan aksara pada rentetan $res.

Ringkasnya, PHP menyediakan pelbagai kaedah untuk menukar nombor heksadesimal kepada rentetan. Pemaju boleh memilih kaedah yang sesuai mengikut keperluan sebenar.

Atas ialah kandungan terperinci Bagaimana untuk menukar heksadesimal kepada fungsi rentetan dalam php. 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