PHP 中統計中文字數

2021-08-16 03:24:13 字數 767 閱讀 5520

php 中如何正確統計中文字數?這個是困擾我很久的問題,php 中有很多函式可以計算字串的長度,比如下面的例子,分別使用了strlenmb_strlenmb_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』編碼引數,可以避免中文擷取亂碼的問題。

中英文本串中統計英文本元個數

工作中遇到如下問題,搜尋網路資源得以解決,記錄以供參考。問題 在一段中英文混合的字串中,通過關關鍵字查詢到某位置p。需要擷取p前後一定長度字元,構成乙個新的字串。問題解析 由於是中貢混合的字串,當向前後擷取長度不當時會出現擷取到中文半個字的情況。面引起出現亂碼的情況。方法 首先確定字串的編碼格式,由...

php 限制字數 PHP中如何正確統計中文字數

php中如何正確統計中文字數 下面的例子,分別使用了 strlen,mb strlen,mb strwidth 這個三個函式去測試統計字串的長度,看看把中文算成幾個位元組 echo strlen 你好abc 輸出 9 echo mb strlen 你好abc utf 8 輸出 5 echo mb s...

Linux中文字工具檢視,分析統計文字

抽取文字的工具 檔案檢視一般選擇cat命令,直接在命令框中檢視檔案中內容,不開啟檔案 cat option file e 顯示行結束符 n 對顯示的每一行進行編號 a 顯示所有的空字元 b 對非空字元進行顯示 s 壓縮連續的空行成一行 檢視文字前幾行 head 命令 head option file...