-
PHP中文截字、断字2个函数介绍
Posted on 一月 4th, 2008 No comments在写页面的时候常会遇到 30 个字要截字, 超过 30 字加 “…”, 未满 30 字不加.. 等等问题. 之前用 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 有很方便的函数mb_strimwidth可以直接达到此功能.
$string = strip_tags($string); $string = mb_strimwidth($string, 0, 80, '...', 'UTF-8');
在UTF-8 情况下算字长用 strlen 或 mb_strlen 都不是很准确, 所以可以用另一个方法mb_strwidth, 算字的宽度:
echo mb_strwidth($string, 'UTF-8'); // 算字长
现在我们回过来看mb_strimwidth的解决方法,如果最后被截断的是2个空格,那么格式就会变得很丑陋,这是我们可以用以下方法:
rtrim(mb_strimwidth($string, 0, 24))."..."
今天看了一篇不错的文章:用Tidy库处理用户输入的中文http://nukq.malmam.com/archives/14
Leave a reply

