引用 | 編輯
笑笑
2008-06-12 11:46 |
樓主
|
||
x0
在寫網頁的時後常會遇到 80 個字要截字, 然後超過 80 字加 "...", 未滿 80 字不加.. 等等之類的問題.之前用 mb_substr 的寫法如下: 複製程式 $string = strip_tags($string); // 先清掉 html tag, 以免 html tag 被破壞 $string = mb_substr($string, 0, 80, 'UTF-8'); $string .= (mb_strlen($string, 'UTF-8') > 80)?'...':'' 複製程式 $string = strip_tags($string); $string = mb_strimwidth($string, 0, 80, '...', 'UTF-8'); 複製程式 echo mb_strwidth($string, 'UTF-8'); // 算字寬度 mb_strlen 跟 mb_strwidth 有什麼不同呢? 複製程式 echo mb_strwidth("數位男女", 'UTF8').'<br>' echo mb_strlen("數位男女", 'UTF8').'<br>' 8 4 所以如果你是要顯示在網頁上,那就用 mb_strwidth 會比較準,因為一個中文字的寬度等於兩個英文字的寬度 如果你要寫入 MySQL ,那就要用 mb_strlen 比較準,因為 MySQL 4.1.x 以後,資料的內碼都是用 UTF-8 ,而欄位寬度也是用 UTF-8 去算的 x0
|