PHP计算字符串长度<br />
strlen()是PHP自带的计算英文字符串的函数。<br />
<br />
GBK字符串长度<br />
中文字符计算为2个字符,英文字符计算为1个,可以统计中文字符串长度的函数。<br />
function abslength($str){<br />
$len=strlen($str);<br />
$i=0;<br />
while($i<$len)<br />
{<br />
if(preg_match("/^[".chr(0xa1)."-".chr(0xff)."]+$/",$str[$i]))<br />
{<br />
$i+=2;<br />
}<br />
else<br />
{<br />
$i+=1;<br />
}<br />
}<br />
return $i;<br />
} <br />
<br />
UTF8字符串长度<br />
下面定义的strlen_utf8函数可以统计UTF-8字符串的长度,但不同的是,该函数并不考虑字节,这有些类似 Javascript 中字符串的length方法,一个字符全部按 1 个长度计算。<br />
<?php // 说明:计算 UTF-8 字符串长度(忽略字节的方案) <br />
function strlen_utf8($str) {<br />
$i = 0;<br />
$count = 0;<br />
$len = strlen ($str);<br />
while ($i < $len) {<br />
$chr = ord ($str[$i]);<br />
$count++;<br />
$i++;<br />
if($i >= $len) break;<br />
if($chr & 0x80) {<br />
$chr <<= 1;<br />
while ($chr & 0x80) {<br />
$i++;<br />
$chr <<= 1;<br />
}<br />
}<br />
}<br />
return $count;<br />
}<br />
$str = "www.seocn.info";<br />
echo strlen_utf8($str);<br />
?><br />