Rumah > pembangunan bahagian belakang > masalah PHP > Bagaimana untuk mengira berapa banyak bait rentetan yang diduduki dalam php

Bagaimana untuk mengira berapa banyak bait rentetan yang diduduki dalam php

青灯夜游
Lepaskan: 2023-03-16 19:18:01
asal
8755 orang telah melayarinya

Dalam PHP, anda boleh menggunakan fungsi strlen() untuk mengira bilangan bait dalam rentetan. Fungsi ini mengira panjang rentetan dalam bait dan boleh mengira panjang aksara (bilangan bait) yang diduduki oleh rentetan Sintaksnya ialah "strlen (rentetan)". Dalam pengiraan fungsi ini, koma Inggeris, nombor, huruf Inggeris, titik perpuluhan, dsb. hanya menduduki satu bait manakala aksara Cina berkod GB2312 menduduki dua bait, dan aksara Cina berkod UTF-8 menduduki tiga bait.

Bagaimana untuk mengira berapa banyak bait rentetan yang diduduki dalam php

Persekitaran pengendalian tutorial ini: sistem Windows 7, PHP versi 8.1, komputer DELL G3

Watak yang diduduki oleh format pengekodan yang berbeza dalam php Bait adalah berbeza:

  • Format pengekodan ANSI: Satu aksara Cina menduduki 2 bait, dan satu aksara Inggeris menduduki 1 bait; -8 format pengekodan, satu aksara Cina menduduki 3 bait, dan satu aksara Inggeris menduduki 1 bait.

  • Dalam PHP, anda boleh menggunakan fungsi strlen() untuk mengira bilangan bait dalam rentetan.

fungsi strlen() mengira panjang rentetan dalam bait.

Fungsi ini hanya menerima satu parameter $string (rentetan untuk dikira), dan mengembalikan 0 jika nilai yang diluluskan dalam parameter ini kosong.

strlen($string)
Salin selepas log masuk

Dalam fungsi strlen(), (dalam mod Bahasa Inggeris) koma, nombor, huruf Inggeris, titik perpuluhan
, garis bawah, ruang, dsb. hanya menduduki satu aksara (bait) .

.

<?php
header("Content-type:text/html;charset=utf-8");
$str = "hello world!";
echo &#39;字符串 “&#39;.$str.&#39;” 占:&#39;.strlen($str).&#39; 个字节<br>&#39;;
?>
Salin selepas log masuk
Analisis: Dalam rentetan contoh di atas, terdapat 10 huruf Inggeris, ruang dan tanda seru bahasa Inggeris jumlah: 12 bait .

Bagaimana untuk mengira berapa banyak bait rentetan yang diduduki dalam php

Dalam fungsi strlen(), aksara Cina berkod GB2312 menduduki dua aksara panjang (bait) dan aksara Cina berkod UTF-8 menduduki tiga aksara panjangnya (bait ).

<?php
header("Content-type:text/html;charset=utf-8");
$str = "!";
echo &#39;字符串 “&#39;.$str.&#39;” 占:&#39;.strlen($str).&#39; 个字节<br>&#39;;
?>
Salin selepas log masuk
Dalam contoh di atas, "!" ialah tanda seru Cina, jadi ia menduduki tiga bait.

Bagaimana untuk mengira berapa banyak bait rentetan yang diduduki dalam php

<?php
header("Content-type:text/html;charset=utf-8");
$str = "欢迎";
echo &#39;字符串 “&#39;.$str.&#39;” 占:&#39;.strlen($str).&#39; 个字节<br>&#39;;
?>
Salin selepas log masuk
Dalam contoh di atas, ia mengandungi dua aksara Cina, jadi ia menduduki 6 bait.

Bagaimana untuk mengira berapa banyak bait rentetan yang diduduki dalam php

<?php
header("Content-type:text/html;charset=utf-8");
$str = "hello,欢迎来到这里!";
echo &#39;字符串 “&#39;.$str.&#39;” 占:&#39;.strlen($str).&#39; 个字节<br>&#39;;
?>
Salin selepas log masuk
Dalam contoh di atas, ia mengandungi 5 aksara Inggeris, 6 aksara Cina, tanda seru Cina dan koma Cina, oleh itu, ia menyumbang 5 (8 *3)=29 bait.

Bagaimana untuk mengira berapa banyak bait rentetan yang diduduki dalam php

Nota:

Apabila mengira bilangan aksara dalam rentetan, fungsi strlen() hanya boleh memproses rentetan bahasa Inggeris dan tidak mesra kepada rentetan Cina atau campuran Cina dan Inggeris. Pada masa ini, anda perlu menggunakan fungsi

mb_strlen(), yang boleh mengira panjang rentetan mengikut .

Pengetahuan lanjutan: fungsi mb_strlen() 字符

fungsi mb_strlen() juga boleh mengembalikan panjang rentetan Format sintaks adalah seperti berikut:

$str ialah rentetan yang panjangnya perlu dikira
mb_strlen($str [, $encoding = mb_internal_encoding()])
Salin selepas log masuk
  • $pengekodan ialah parameter pilihan, iaitu pengekodan aksara. pengekodan aksara dalaman digunakan.

  • Nilai pulangan bagi fungsi mb_strlen() ialah bilangan aksara yang terkandung dalam rentetan $str dengan pengekodan $Jika $encoding tidak sah, false dikembalikan.

Nota: Tidak seperti fungsi strlen(), dalam fungsi mb_strlen(), sama ada aksara Cina, Inggeris, nombor, titik perpuluhan, garis bawah dan ruang, ia hanya menduduki satu aksara panjangnya.

[Contoh] Gunakan fungsi mb_strlen() untuk mendapatkan panjang rentetan.

<?php
header("Content-type:text/html;charset=utf-8");
$str = "hello 你好!";
echo &#39;字符串 “&#39;.$str.&#39;” 的长度为:&#39;.mb_strlen($str,"utf-8").&#39;<br>&#39;;

$str = "欢迎来到PHP中文网!";
echo &#39;<br>字符串 “&#39;.$str.&#39;” 的长度为:&#39;.mb_strlen($str,&#39;utf-8&#39;).&#39;<br>&#39;;
?>
Salin selepas log masuk
Dapat dilihat bahawa kita boleh menangani masalah panjang rentetan Cina dengan baik dengan menetapkan parameter

yang sepadan. Bagaimana untuk mengira berapa banyak bait rentetan yang diduduki dalam php

Pembelajaran yang disyorkan: "

Tutorial Video PHP$encoding"

Atas ialah kandungan terperinci Bagaimana untuk mengira berapa banyak bait rentetan yang diduduki dalam php. 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