復制代碼 代碼如下:
 
$zhStr = '您好,中國!'; 
$str = 'Hello,中國!'; 
// 計算中文字符串長度 
function utf8_strlen($string = null) { 
// 將字符串分解為單元 
preg_match_all("/./us", $string, $match); 
// 返回單元個數 
return count($match[0]); 
} 
echo utf8_strlen($zhStr); // 輸出:6 
echo utf8_strlen($str); // 輸出:9 
復制代碼 代碼如下:
 
/* 
* 用于UTF8編碼的程序 
* 獲得字符串的長度,一個中文表示3個長度 
* itlearner注釋 
*/ 
function utf8_strlen($str) { 
$count = 0; 
for($i = 0; $i < strlen($str); $i++){ 
$value = ord($str[$i]); 
if($value > 127) { 
$count++; 
if($value >= 192 && $value <= 223) $i++; 
elseif($value >= 224 && $value <= 239) $i = $i + 2; 
elseif($value >= 240 && $value <= 247) $i = $i + 3; 
else die('Not a UTF-8 compatible string'); 
} 
$count++; 
} 
return $count; 
} 
新聞熱點
疑難解答