PHP 截字、斷字專用 function

在寫網頁的時後常會遇到 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'); // 算字寬度


關於 Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.
本篇發表於 My_Note-Programming。將永久鏈結加入書籤。

PHP 截字、斷字專用 function 有 1 則回應

  1. 通告: 使用 CSS 將過長的文字轉成 ... - Tsung's Blog

發表迴響