首页 > 程序开发 > PHP中文截字、断字2个函数介绍

PHP中文截字、断字2个函数介绍

2008年1月4日

在写页面的时候常会遇到 30 个字要截字, 超过 30 字加 “…”, 未满 30 字不加.. 等等问题. 之前用 substr 的写法如下:

1
2
3
$string = strip_tags($string); // 先清掉 html tag, 以免 html tag 被破坏
$string = mb_substr($string, 0, 80, 'UTF-8');
$string .= (mb_strlen($string, 'UTF-8') > 80)?'...':'';

有很方便的函数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

VN:F [1.9.22_1171]
Rating: 6.5/10 (2 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)
PHP中文截字、断字2个函数介绍, 6.5 out of 10 based on 2 ratings

程序开发

  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.

This blog is kept spam free by WP-SpamFree.