PHP 計算字符串長度函數

PHP內置的字符串長度函數strlen無法正確處理中文字符串,它得到的只是字符串所占的字節數。對於GB2312的中文編碼,strlen得到的值是漢字個數的2倍,而對於UTF-8編碼的中文,就是3倍的差異了(在UTF-8編碼下,一個漢字占3個字節)。以下函數可以得出正確的字符串字符個數。

 

function stringLength($str){
    $c = 0;
    for($i=0;$i<strlen($str);$i++){
        if(ord(substr($str,$i,1))>0xa0){
            $i+=2;
        }
        $c++;
    }
    return $c;
}

 

 

 

 

posted @ 2013-08-20 16:04  Vhelin  阅读(188)  评论(0编辑  收藏  举报