|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
原来有人提出了一个方法:
$len = 19;
$text = "怎么将新闻的很长的标题只显示前面一些字,后面用.....来代替?";
echo strlen($text)<=$len ? $text : (substr($text,0,$len).chr(0)."....");
今天在 SaBlog 的程序里发现了另一种方法:
function csubstr ($text, $limit) {
$s = '';
for($i=0;$i<$limit-3;$i++) {
$s .= ord($text[$i])>127 ? $text[$i].$text[++$i] : $text[$i];
}
return $s;
}
该函数仅适用于 gb2312 编码,如果是UTF-8 的话需要把第4行改为
$s .= ord($text[$i])>127 ? $text[$i].$text[++$i].$text[++$i] : $text[$i];
令人惊讶的是 UTF-8 中的汉字竟然是 3 个字节。 |
|