php 如何統計中文字數

怪我咯
發布: 2023-03-11 22:06:01
原創
5653 人瀏覽過

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中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板