[請益] 如何統計同時含有中文與英文的字串長度

看板PHP作者 (天啊~~)時間14年前 (2010/07/19 00:23), 編輯推噓6(607)
留言13則, 7人參與, 最新討論串1/1
現在UTF-8的中文字元是3而英文字元是1 我現在假設要判斷一個含有中文與英文的字串 例如:測試ABC 用mb_strlen得出的是5 用strlen得出的是9 請問有什麼方法可以得到7呢 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.25.167.22

07/19 00:40, , 1F
得到7是什麼意思? 把中文當作雙位元看嗎?
07/19 00:40, 1F

07/19 00:42, , 2F
如果是的話,你可以分別用 mb_strlen, strlen 的結果
07/19 00:42, 2F

07/19 00:42, , 3F
算出有幾個中文字,再自己乘上 byte 數就可以了
07/19 00:42, 3F

07/19 00:43, , 4F
例如,假設中文是x字,英文y字,x+y=5,3x+y=9=>x=2,y=3
07/19 00:43, 4F

07/19 00:43, , 5F
2x+y=7
07/19 00:43, 5F

07/19 00:46, , 6F
mb_strwidth
07/19 00:46, 6F

07/19 01:02, , 7F
感謝樓上兩位
07/19 01:02, 7F

07/19 02:26, , 8F
(mb_strlen($str,'UTF-8')+strlen($str))/2;//(5+9)/2=7
07/19 02:26, 8F

07/19 05:33, , 9F
用前面推的mb_strwidth比較好
07/19 05:33, 9F

07/19 18:02, , 10F
唔,學到新的函數用法XD
07/19 18:02, 10F

07/20 01:00, , 11F
這一點都不新呀, 基本函數就該先去看reference有沒有 ...
07/20 01:00, 11F

07/20 11:50, , 12F
=///=我也學到新的函式mb_strwidth(羞)
07/20 11:50, 12F

05/06 09:49, , 13F
有用到 所以推一下
05/06 09:49, 13F
文章代碼(AID): #1CGogCVc (PHP)