這篇文章主要介紹了利用PHP函數(shù)計(jì)算中英文字符串長度的方法,實(shí)例對比了PHP函數(shù)實(shí)現(xiàn)方法與正則表達(dá)式的實(shí)現(xiàn)方法,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
本文實(shí)例講述了利用PHP函數(shù)計(jì)算中英文字符串長度的方法。分享給大家供大家參考。具體實(shí)現(xiàn)方法如下:
一般來說大家知道英文字符占一個(gè)字節(jié),而中文字符gbk占兩個(gè)字符,utf8占三個(gè)字符,很多人印象中php計(jì)算字符串長度就是strlen()函數(shù),其實(shí)不然,它計(jì)算的是字節(jié)的長度而非字符的長度,那么如何獲取一個(gè)字符串中字符的長度呢?還有有mb_strlen().
具體代碼如下:
復(fù)制代碼代碼如下:
echo $str = 'PHP點(diǎn)點(diǎn)通';
echo strlen($str); //3*1+3*3=12
echo mb_strlen($str, 'gb2312'); //3*1+3*2=9
echo mb_strlen($str, 'utf-8'); //6
可惡的是,mb系列的函數(shù)并不是PHP核心函數(shù),默認(rèn)沒有開啟的,還有一個(gè)超簡單的方法,通過正則將字符串分解為字符個(gè)體,計(jì)算字符的個(gè)數(shù)即為字符串的長度,代碼如下:
復(fù)制代碼代碼如下:
<?php
function _strlen($str)
{
preg_match_all("/./us", $str, $matches);
return count(current($matches));
}
echo _strlen("PHP點(diǎn)點(diǎn)通"); //6
?>
希望本文所述對大家的PHP程序設(shè)計(jì)有所幫助。