Rumah >pembangunan bahagian belakang >masalah PHP >php menukar rentetan kepada perenambelasan

php menukar rentetan kepada perenambelasan

WBOY
WBOYasal
2023-05-24 17:59:082429semak imbas

Dalam bidang pembangunan web, selalunya perlu untuk mengekod dan menyahkod data. Antaranya, menukar rentetan kepada perenambelasan adalah keperluan biasa Contohnya, apabila menyulitkan, menghantar atau menyimpan data, data perlu ditukar kepada format perenambelasan. Dalam PHP, ia juga sangat mudah untuk ditukar kepada fungsi Mari perkenalkan kaedah pelaksanaan khusus.

1. Gunakan fungsi bin2hex()

PHP menyediakan fungsi bin2hex(), yang melaluinya data binari boleh ditukar menjadi rentetan perenambelasan. Oleh kerana rentetan pada asasnya adalah data binari, kita boleh menukar rentetan yang perlu ditukar kepada format binari dahulu, dan kemudian menggunakan fungsi bin2hex() untuk menukar rentetan itu kepada perenambelasan Kod khusus adalah seperti berikut:

$str = 'hello world';
$hex_str = bin2hex($str); 
echo $hex_str;

Dalam kod di atas, rentetan "hello world" ditukar menjadi rentetan binari, dan kemudian ditukar menjadi rentetan perenambelasan melalui fungsi bin2hex(). Hasil keluaran akhir ialah:

68656c6c6f20776f726c64

Keputusan ini kelihatan pelik, tetapi ia sebenarnya merupakan perwakilan heksadesimal bagi "hello world". Setiap dua aksara sepadan dengan satu bait, menjadikannya mudah untuk pemprosesan dan penghantaran selanjutnya.

2. Fungsi tersuai untuk menukar rentetan kepada heksadesimal

Selain menggunakan fungsi terbina dalam, kami juga boleh menggunakan fungsi tersuai untuk menukar rentetan kepada perenambelasan. Kod pelaksanaan ringkas disediakan di bawah:

function str2hex($str) {
    $hex='';
    for ($i=0; $i<strlen($str); $i++) {
        $ord=ord($str[$i]);
        $hexCode=dechex($ord);
        $hex .= substr('0'.$hexCode, -2);
    }
    return $hex;
}

$str = 'hello world';
$hex_str = str2hex($str);
echo $hex_str;

Dalam kod di atas, kami mula-mula mentakrifkan fungsi tersuai str2hex(), yang boleh menukar rentetan kepada format perenambelasan. Prinsip pelaksanaan khusus adalah seperti berikut:

  1. Lintas rentetan dan gunakan fungsi ord() untuk menukar setiap aksara kepada kod ASCII.
  2. Tukar kod ASCII kepada format perenambelasan menggunakan fungsi dechex().
  3. Apabila digit perenambelasan yang diperoleh sekarang adalah kurang daripada dua digit, tambahkan sifar di hadapan.
  4. Sambungkan format perenambelasan setiap aksara bersama-sama untuk akhirnya mendapatkan format perenambelasan keseluruhan rentetan.

Hasil output adalah sama seperti menggunakan fungsi terbina dalam bin2hex(), kedua-duanya ialah:

68656c6c6f20776f726c64

Ringkasan

Dalam PHP, tukar rentetan kepada hex Terdapat dua cara utama untuk melaksanakan format hex: menggunakan fungsi terbina dalam bin2hex() atau fungsi tersuai. Antaranya, lebih mudah untuk menggunakan fungsi terbina dalam, tetapi fungsi tersuai mempunyai fleksibiliti yang lebih tinggi dan boleh melakukan lebih banyak pengiraan dan penukaran tersuai. Pembangun boleh memilih kaedah yang sesuai untuk dilaksanakan berdasarkan keperluan sebenar mereka.

Atas ialah kandungan terperinci php menukar rentetan kepada perenambelasan. 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