PHP计算字符串长度<br /> strlen()是PHP自带的计算英文字符串的函数。<br /> <br /> GBK字符串长度<br /> 中文字符计算为2个字符,英文字符计算为1个,可以统计中文字符串长度的函数。<br /> function abslength($str){<br /> $len=strlen($str);<br /> $i=0;<br /> while($i&lt;$len)<br /> {<br /> if(preg_match(&quot;/^[&quot;.chr(0xa1).&quot;-&quot;.chr(0xff).&quot;]+$/&quot;,$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 /> &lt;?php // 说明:计算 UTF-8 字符串长度(忽略字节的方案) <br /> function strlen_utf8($str) {<br /> $i = 0;<br /> $count = 0;<br /> $len = strlen ($str);<br /> while ($i &lt; $len) {<br /> $chr = ord ($str[$i]);<br /> $count++;<br /> $i++;<br /> if($i &gt;= $len) break;<br /> if($chr &amp; 0x80) {<br /> $chr &lt;&lt;= 1;<br /> while ($chr &amp; 0x80) {<br /> $i++;<br /> $chr &lt;&lt;= 1;<br /> }<br /> }<br /> }<br /> return $count;<br /> }<br /> $str = &quot;www.seocn.info&quot;;<br /> echo strlen_utf8($str);<br /> ?&gt;<br />
返回顶部 留言