當前位置:才華齋>計算機>php語言>

PHP中如何正確統計中文字數

php語言 閱讀(6.5K)

PHP 中如何正確統計中文字數?php 中有很多函式可以計算字串的長度,下面內容由小編為大家介紹PHP中正確統計中文字數的方法,供大家參考!

PHP中如何正確統計中文字數

下面的例子,分別使用了 strlen,mb_strlen,mb_strwidth 這個三個函式去測試統計字串的長度,看看把中文算成幾個位元組:

echo strlen("你好ABC") . "";

//輸出 9

echo mb_strlen("你好ABC", 'UTF-8') . "";

// 輸出 5

echo mb_strwidth("你好ABC") . "";

//輸出 7123456123456

從上面的測試,我們可以看出:strlen 把中文字元算成 3 個位元組,mb_strlen 不管中文還是英文,都算 1 個位元組,而 mb_strwidth 則把中文算成 2 個位元組,所以 mb_strwidth 才是我們想要的:中文 2 個位元組,英文 1 個位元組。

同樣擷取字串也建議使用 mb_strimwidth,也是按照 中文 2 個位元組,英文 1 個位元組 方式計算之後的',並且如果字數超過擷取的要求,這個函式還可以在最後面自動新增‘…’。

mb_strimwidth($post_excerpt,0,240,'...','utf-8');11

注意,最後新增‘utf-8’編碼引數,可以避免中文擷取亂碼的問題。