Rumah > pembangunan bahagian belakang > masalah PHP > Rentetan PHP mempelajari cara mengembalikan panjang aksara Cina atau aksara campuran

Rentetan PHP mempelajari cara mengembalikan panjang aksara Cina atau aksara campuran

青灯夜游
Lepaskan: 2023-03-11 22:58:01
asal
2166 orang telah melayarinya

Dalam artikel sebelumnya "Cara menggantikan subrentetan panjang tertentu dengan tanda * dalam PHP", kami memperkenalkan penggantian rentetan, kaedah menggantikan subrentetan panjang tertentu dengan tanda * . Ini Kali ini kita terus memahami rentetan dan memperkenalkan kaedah pengiraan panjang rentetan Cina atau panjang rentetan campuran Cina dan Inggeris.

Bagaimana untuk mengira panjang rentetan Cina? Mengenai masalah ini, tindak balas pertama kami mungkin menggunakan fungsi strlen(), tetapi fungsi strlen() pandai memproses rentetan semua bahasa Inggeris, tetapi ia tidak berfungsi apabila melibatkan rentetan campuran Cina dan Inggeris atau rentetan Cina tulen . Mari kita lihat contoh berikut:

<?php
header("Content-type:text/html;charset=utf-8");  //设置字符编码为utf-8
$str = "欢迎来到PHP中文网!";
echo &#39;字符串 “&#39;.$str.&#39;” 的长度为:&#39;.strlen($str).&#39;<br>&#39;;
?>
Salin selepas log masuk

Hasil output ialah:

Rentetan PHP mempelajari cara mengembalikan panjang aksara Cina atau aksara campuran

Ia boleh dilihat bahawa fungsi strlen() mempunyai berbeza peraturan untuk memproses aksara Panjang rentetan campuran Cina dan Inggeris atau Cina tulen tidak boleh dikembalikan dengan tepat. Jadi mengapa ia kembali 27?

Ini kerana pengekodan aksara yang kami gunakan ialah utf-8 dan aksara Cina menduduki tiga bait di bawah pengekodan UTF-8.

fungsi strlen() Dalam kod ASCII, satu aksara Cina menduduki dua bait ruang dalam pengekodan UTF-8, satu aksara Cina (termasuk bahasa Cina tradisional) bersamaan dengan tiga bait dalam pengekodan Unicode , satu aksara Cina (termasuk Cina tradisional) adalah sama dengan dua bait.

Rentetan "欢迎来到PHP中文网!" dalam contoh di atas mengandungi 8 aksara Cina dan 3 aksara Inggeris, iaitu 8*3 3=27 bait dan panjang rentetan ialah 27.

Tetapi panjang rentetan sebegitu bukanlah yang kita mahukan. Bagaimana cara menangani aksara Cina dan mengira panjang rentetan campuran Cina dan Inggeris atau Cina tulen yang kita mahukan?

PHP menyediakan fungsi untuk menyelesaikan masalah ini, iaitu fungsi mb_strlen() .

Sama seperti contoh sebelumnya, kali ini menggunakan fungsi mb_strlen() untuk mengira panjang rentetan:

<?php
header("Content-type:text/html;charset=utf-8");
$str = "欢迎来到PHP中文网!";
echo &#39;字符串 “&#39;.$str.&#39;” 的长度为:&#39;.mb_strlen($str,&#39;utf-8&#39;).&#39;<br>&#39;;
?>
Salin selepas log masuk

Hasil output ialah:

Rentetan PHP mempelajari cara mengembalikan panjang aksara Cina atau aksara campuran

Dapat dilihat dalam rentetan $str terdapat tanda seru bahasa Cina dan Inggeris, masing-masing mempunyai 11 aksara, dan hasil keluarannya juga 11. By the way, saya jumpa orang yang betul~

fungsi mb_strlen(), sama ada aksara Cina, Inggeris, nombor, titik perpuluhan, garis bawah dan ruang, hanya mengambil satu bait.

Mari kita lihat secara ringkas fungsi mb_strlen(). Fungsi

mb_strlen($string,$encoding) boleh mengembalikan jumlah aksara yang sepadan dengan menetapkan pengekodan aksara; , jika diabaikan pengekodan aksara dalaman digunakan. $encoding

Kami boleh menangani masalah panjang rentetan Cina dengan baik dengan menetapkan parameter

yang sepadan. $encoding

Itu sahaja jika anda ingin mengetahui perkara lain, anda boleh klik ini. → →

tutorial video php

Akhir sekali, saya mengesyorkan anda membaca kursus klasik "

Pemprosesan Rentetan PHP (Edisi Sutra Jantung Gadis Jade) ", ianya percuma~ datang dan belajar!

Atas ialah kandungan terperinci Rentetan PHP mempelajari cara mengembalikan panjang aksara Cina atau aksara campuran. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
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