- 相關(guān)推薦
PHP中如何正確統(tǒng)計(jì)中文字?jǐn)?shù)
PHP 中如何正確統(tǒng)計(jì)中文字?jǐn)?shù)?php 中有很多函數(shù)可以計(jì)算字符串的長度,下面內(nèi)容由小編為大家介紹PHP中正確統(tǒng)計(jì)中文字?jǐn)?shù)的方法,供大家參考!
下面的例子,分別使用了 strlen,mb_strlen,mb_strwidth 這個(gè)三個(gè)函數(shù)去測試統(tǒng)計(jì)字符串的長度,看看把中文算成幾個(gè)字節(jié):
echo strlen("你好ABC") . "";
//輸出 9
echo mb_strlen("你好ABC", 'UTF-8') . "";
// 輸出 5
echo mb_strwidth("你好ABC") . "";
//輸出 7123456123456
從上面的測試,我們可以看出:strlen 把中文字符算成 3 個(gè)字節(jié),mb_strlen 不管中文還是英文,都算 1 個(gè)字節(jié),而 mb_strwidth 則把中文算成 2 個(gè)字節(jié),所以 mb_strwidth 才是我們想要的:中文 2 個(gè)字節(jié),英文 1 個(gè)字節(jié)。
同樣截取字符串也建議使用 mb_strimwidth,也是按照 中文 2 個(gè)字節(jié),英文 1 個(gè)字節(jié) 方式計(jì)算之后的,并且如果字?jǐn)?shù)超過截取的要求,這個(gè)函數(shù)還可以在最后面自動(dòng)添加‘…’。
mb_strimwidth($post_excerpt,0,240,'...','utf-8');11
注意,最后添加‘utf-8’編碼參數(shù),可以避免中文截取亂碼的問題。
【PHP中如何正確統(tǒng)計(jì)中文字?jǐn)?shù)】相關(guān)文章:
如何正確發(fā)布PHP代碼08-03
如何正確配置 Nginx + PHP09-20
PHP中多態(tài)如何實(shí)現(xiàn)09-04
如何使用php中session08-27
php如何解決中文亂碼問題10-04