PHP計算文字列長
1430 ワード
PHPは文字列の長さを計算し、英語、GBK、UTF-8の複数の文字セットの下でPHPが文字列の長さをどのように計算するかを含む.英語文字列の長さ
strlen()はPHPが持つ英語文字列を計算する関数です.
GBK文字列長
中国語文字は2文字、英語文字は1文字と計算され、中国語文字列の長さを統計できる関数です.
UTF 8文字列長
以下で定義するstrlen_utf 8関数はUTF-8文字列の長さを統計することができますが、異なる点は、この関数はバイトを考慮していません.Javascriptの文字列のlengthメソッドに似ています.
1文字すべてを1文字の長さで計算します.
strlen()はPHPが持つ英語文字列を計算する関数です.
GBK文字列長
中国語文字は2文字、英語文字は1文字と計算され、中国語文字列の長さを統計できる関数です.
function abslength($str){
$len=strlen($str);
$i=0;
while($i<$len)
{
if(preg_match("/^[".chr(0xa1)."-".chr(0xff)."]+$/",$str[$i]))
{
$i+=2;
}
else
{
$i+=1;
}
}
return $i;
}
UTF 8文字列長
以下で定義するstrlen_utf 8関数はUTF-8文字列の長さを統計することができますが、異なる点は、この関数はバイトを考慮していません.Javascriptの文字列のlengthメソッドに似ています.
1文字すべてを1文字の長さで計算します.
<?php
// : UTF-8 ( )
function strlen_utf8($str) {
$i = 0;
$count = 0;
$len = strlen ($str);
while ($i < $len) {
$chr = ord ($str[$i]);
$count++;
$i++;
if($i >= $len) break;
if($chr & 0x80) {
$chr <<= 1;
while ($chr & 0x80) {
$i++;
$chr <<= 1;
}
}
}
return $count;
}
$str = "www.phpq.net-PHP ";
echo strlen_utf8($str);
?>