Rumah pembangunan bahagian belakang tutorial php [原创]PHP字符串与字节数组的高速互换

[原创]PHP字符串与字节数组的高速互换

Jun 13, 2016 pm 01:04 PM
bytes charset str

[原创]PHP字符串与字节数组的快速互换

??????? 要加密,则需要将字符串转为ASCII的字节数组。反之,则要转回来。代码为什么速度快?那就是,能不用FOR循环的,直接不用。使用PHP原有的函数,让它实现,这是最快的。

<?php function stringToByteArray($str,$charset) {

    $str = iconv($charset,'UTF-16',$str);
    preg_match_all('/(.)/s',$str,$bytes);  //注:本文的盗版已经有了。不过,提示一下读者,这里的正则改了。
    $bytes=array_map('ord',$bytes[1]) ;
    return $bytes;

}

function byteArrayToString($bytes,$charset) {

    $bytes=array_map('chr',$bytes);
    $str=implode('',$bytes);
    $str = iconv('UTF-16',$charset,$str);
    return $str;

}

$byteArray=stringToByteArray('13亿人口大国,自认为精通PHP的还是相当多的!','utf-8');
print_r($byteArray);
$retStr=byteArrayToString($byteArray,'utf-8');
echo $retStr;

?>
Salin selepas log masuk

?

每个函数只有4行代码,没有FOR循环,但当文本相当长时,你就能发现,差别真的很大。

?

?

注:希望各位读者注意:本人博文如未注明是转发,全系本人原创。网上盗用版本甚多。但由于博文在发布时,有可能是多次编辑增加内容,或因有瑕疵而需要修改。所以,请来这里查看原创正版。

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Kaedah dan tutorial pengaktifan manual HWID V 2.2 Kaedah dan tutorial pengaktifan manual HWID V 2.2 Oct 20, 2023 pm 07:17 PM

Ini adalah untuk pengguna yang ingin melakukan pengaktifan manual. Jika anda memerlukan bantuan dengan alat untuk anda melakukan ini, kemudian semak di sini. Kita boleh membahagikan proses pengaktifan manual kepada dua bahagian. 1- Daripada fail kumpulan siap sedia pastikan internet didayakan. Buka Windows Powershell sebagai pentadbir dan masukkan yang berikut untuk menyenaraikan arahan dalam susunan yang diberikan. Masukkan kekunci, (gantikan dengan kunci daripada senarai di atas) Gunakan arahan berikut &lt;key&gt;slmgr/ipk&lt;key&gt; Muat turun tiket universal dari sini dan ekstrak fail yang dimuat turun. Sekarang masukkan kod berikut dalam Powershell (Get-ItemProper

Bagaimana untuk menyelesaikan ralat 'undefined: bytes.Split' dalam golang? Bagaimana untuk menyelesaikan ralat 'undefined: bytes.Split' dalam golang? Jun 25, 2023 pm 02:02 PM

Dalam bahasa Go, pakej bait ialah pakej untuk memanipulasi jenis bait, dan ia mengandungi banyak kaedah berguna, seperti kaedah Split(). Walau bagaimanapun, apabila menggunakan kaedah Split(), anda mungkin menghadapi ralat "undefined: bytes.Split". Ralat ini biasanya disebabkan oleh versi Go yang tidak serasi atau kekurangan perpustakaan bergantung yang diperlukan. Artikel ini akan memperkenalkan beberapa kaedah untuk menyelesaikan ralat ini. Kaedah 1: Tingkatkan versi Go seperti berikut

Analisis kod sumber str jenis terbina dalam Python Analisis kod sumber str jenis terbina dalam Python May 09, 2023 pm 02:16 PM

1Unit asas storan komputer Unicode ialah bait, yang terdiri daripada 8 bit. Memandangkan bahasa Inggeris hanya terdiri daripada 26 huruf ditambah beberapa simbol, aksara Inggeris boleh disimpan terus dalam bait. Tetapi bahasa lain (seperti Cina, Jepun, Korea, dll.) perlu menggunakan berbilang bait untuk pengekodan kerana bilangan aksara yang banyak. Dengan penyebaran teknologi komputer, teknologi pengekodan aksara bukan Latin terus berkembang, tetapi masih terdapat dua batasan utama: tiada sokongan berbilang bahasa: skema pengekodan satu bahasa tidak boleh digunakan dalam bahasa lain dan tiada standard bersatu: contohnya Terdapat banyak piawaian pengekodan dalam bahasa Cina seperti GBK, GB2312, GB18030, dsb. Memandangkan kaedah pengekodan tidak bersatu, pembangun perlu menukar berulang-alik antara pengekodan yang berbeza, dan banyak ralat pasti akan berlaku.

Apakah persamaan dan perbezaan antara __str__ dan __repr__ dalam Python? Apakah persamaan dan perbezaan antara __str__ dan __repr__ dalam Python? Apr 29, 2023 pm 07:58 PM

Apakah persamaan dan perbezaan antara __str__ dan __repr__? Kita semua tahu perwakilan rentetan fungsi repr() boleh menyatakan objek dalam bentuk rentetan untuk memudahkan pengenalan kita. Ini ialah "perwakilan rentetan". repr() mendapatkan perwakilan rentetan objek melalui kaedah khas __repr__. Jika __repr__ tidak dilaksanakan, apabila kita mencetak contoh vektor ke konsol, rentetan yang terhasil mungkin. >>>classContoh:lulus>>>cetak(str(Contoh()))>>>

Bagaimana untuk menyelesaikan ralat 'undefined: bytes.Contains' dalam golang? Bagaimana untuk menyelesaikan ralat 'undefined: bytes.Contains' dalam golang? Jun 24, 2023 pm 09:44 PM

Apabila membangunkan projek menggunakan bahasa Go, kami mungkin menghadapi ralat seperti "undefined: bytes.Contains". Ralat ini biasanya disebabkan oleh versi Go yang digunakan terlalu rendah, kerana fungsi bait.Mengandungi telah ditambahkan dalam versi Go1.2. Jika versi Go anda lebih rendah daripada 1.2, pengkompil tidak dapat mencari fungsi ini dan menggesa "undefined: bytes.Contains"

Bagaimana untuk membaca (atau menulis) data binari dalam Python? Bagaimana untuk membaca (atau menulis) data binari dalam Python? Sep 03, 2023 am 08:57 AM

Untuk membaca atau menulis fail binari, mula-mula anda perlu memahami mod fail yang berbeza untuk fail binari dalam Python - perihalan mod rb membuka fail dalam format binari baca sahaja. Penunjuk fail berada di permulaan fail. Ini ialah mod lalai. rb+ membuka fail dalam format binari untuk membaca dan menulis. Penunjuk fail diletakkan pada permulaan fail. wb membuka fail yang ditulis dalam format binari sahaja. Menimpa fail jika ia wujud. Jika fail itu tidak wujud, fail baharu dicipta untuk menulis. wb+ membuka fail dalam format binari untuk menulis dan membaca. Jika fail wujud, fail sedia ada akan ditimpa. Jika fail itu tidak wujud, fail baharu dicipta untuk membaca dan menulis. ab membuka fail untuk ditambahkan dalam format binari. Jika fail itu wujud, maka fail itu

Tukar rentetan kepada tatasusunan bait menggunakan kaedah getBytes(Charset) dalam Java Tukar rentetan kepada tatasusunan bait menggunakan kaedah getBytes(Charset) dalam Java Sep 16, 2023 pm 06:49 PM

Pengaturcaraan Java melibatkan penukaran tatasusunan rentetan ke bait, teknik mudah digunakan untuk pelbagai tujuan, termasuk komunikasi rangkaian atau penyulitan data. Untuk mencapai matlamat ini, kelas String menyediakan satu siri kaedah untuk penukaran tersebut, dan kaedah getBytes() adalah salah satu daripadanya. Perlu diingat bahawa memilih pengekodan yang sesuai adalah penting, kerana setiap pengekodan menggunakan peraturan yang berbeza apabila memetakan aksara kepada nilai bait. Dalam artikel ini, kita akan menyelidiki dua teknik untuk menukar rentetan kepada tatasusunan bait menggunakan kaedah getBytes() Java. Di samping itu, kami akan memberikan penjelasan yang meluas tentang algoritma yang digunakan oleh setiap kaedah. Kaedah yang digunakan Kaedah 1 - Dalam kaedah ini kita akan mencipta rentetan dan kemudian menggunakan get

Mendedahkan rahsia str dalam bahasa Go Mendedahkan rahsia str dalam bahasa Go Mar 29, 2024 am 11:27 AM

Bahasa Go ialah bahasa pengaturcaraan sumber terbuka yang pantas, ringkas dan cekap, yang semakin popular di kalangan pengaturcara. Rentetan (rentetan) ialah salah satu jenis data yang kerap digunakan dalam atur cara, dan ia juga mempunyai kaedah pemprosesan unik dalam bahasa Go. Artikel ini akan membawa pembaca untuk mendedahkan misteri rentetan (str) dalam bahasa Go dan menganalisis penggunaan serta cirinya melalui contoh kod tertentu. Takrif dan permulaan rentetan Dalam bahasa Go, rentetan ialah urutan aksara yang dibalut dengan petikan berganda "", sebagai contoh: str

See all articles