PHP 中統計中文字數____PHP

來源:互聯網
上載者:User

PHP 中如何正確統計中文字數。這個是困擾我很久的問題,PHP 中有很多函數可以計算字串的長度,比如下面的例子,分別使用了 strlen,mb_strlen,mb_strwidth 這個三個函數去測試統計字串的長度,看看把中文算成幾個位元組:

echo strlen("你好ABC") . "";//輸出 9echo mb_strlen("你好ABC", 'UTF-8') . "";// 輸出 5echo mb_strwidth("你好ABC") . "";//輸出 7
1 2 3 4 5 6

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

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

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

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.