PHP 中如何自動計算中文字數?

PHP 中如何準確覈算中文字數?這個是困惑我好久的疑問,PHP 中有許多函數能夠覈算字符串的長度,比方下面的比如,分別使用了 strlen,mb_strlen,mb_strwidth 這個三個函數去測驗覈算字符串的長度,看看把中文算成幾個字節:

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 個字節 方法覈算以後的,而且假如字數超越截取的請求,這個函數還能夠在最終面主動增加‘…’。

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

留意,最終增加‘utf-8’編碼參數,能夠防止中文截取亂碼的疑問。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章