作者no1kk (心中在下雨)
看板PHP
標題[請益] 如何判斷字串的某個位置的字是全形 or 半形
時間Thu Jul 17 10:54:35 2008
假設我做了一個文章標題的列表
但是因為格子的長度有限
而標題可能很長
因此我用了mb_strimwidth 來擷取一定長度的字串
但是中文字在計算長度上一個字是2
而英文和半形的空白鍵都是1
所以標題夾雜英文或空白鍵時
如果擷取的末端位置又剛好是中文字
就有可能在畫面上出現 ?
如:
原始碼
print(mb_strimwidth($article_subject,0,24,"...."));
出現的畫面
倫敦停車月費3萬5 全球最?....
應該要如何避免這個問題呢?
查了書沒有看到相關的函數...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.219.97.19
1F:推 dspswen :mb_substr($row[content],0,24,'utf-8')."xxx"; 07/17 11:38
2F:→ dspswen :版上一位高手提供的 爬文可以找到 @@ 07/17 11:38
3F:推 Huangs :你用的mb_strimwidth 應該沒錯 07/18 23:17
4F:→ Huangs :不過你是不是沒有設 internal_encoding? 07/18 23:17
5F:→ Huangs :另外 一樓的方法沒有辦法輸出固定"寬度"的字串 07/18 23:17
6F:→ Huangs :比如說 中文24個字元,和英數24個字元 寬度差一倍 07/18 23:18
7F:推 curtis816 :最後要加上encoding的參數 07/19 23:25