首頁  >  文章  >  後端開發  >  php 如何統計中文字數

php 如何統計中文字數

怪我咯
怪我咯原創
2017-06-29 10:02:195637瀏覽

PHP 中如何正確統計中文字數?這個是困擾我很久的問題,PHP 中有很多函數可以計算字串的長度,例如下面的例子,分別使用了

strlen
mb_strlen
mb_strwidth

這個三個函數去測試統計字串的長度,看看把中文算成幾個位元組:

[code]echo strlen("你好ABC") . "";
# 输出 9
echo mb_strlen("你好ABC", 'UTF-8') . "";
# 输出 5
echo mb_strwidth("你好ABC") . "";
#输出 7

從上面的測試,我們可以看出:

strlen

把中文字符算成3 個位元組,

mb_strlen

不管中文還是英文,都算1 個位元組,而

mb_strwidth

則把中文算成2 個字節,所以

mb_strwidth

才是我們想要的:中文2 個字節,英文1 個位元組
同樣截取字串也建議使用

mb_strimwidth

,也是依照中文2 個位元組,英文1 個位元組 方式計算之後的,如果字數超過截取的要求,這個函數還可以在最後面自動加'…'。

[code]mb_strimwidth($post_excerpt,0,240,'...','utf-8');

注意,最後加上‘utf-8’編碼參數,可以避免中文截取亂碼的問題。

以上是php 如何統計中文字數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn