在寫網頁的時後常會遇到 80 個字要截字, 然後超過 80 字加 "...", 未滿 80 字不加.. 等等之類的問題.
之前用 substr 的寫法如下:
$string = strip_tags($string); // 先清掉 html tag, 以免 html tag 被破壞 $string = mb_substr($string, 0, 80, 'UTF-8'); $string .= (mb_strlen($string, 'UTF-8') > 80) ? '...' : '';
PHP 有支援很方便的 function 可以直接達到此功能.
$string = strip_tags($string); $string = mb_strimwidth($string, 0, 80, '...', 'UTF-8');
在 UTF-8 的環境算字數用 strlen 或 mb_strlen 都不是很準, 所以可以用另一個做法, 算字的寬度, 也是個不錯的做法
echo mb_strwidth($string, 'UTF-8'); // 算字寬度