控制长度当然是字符串截取了,不过这个不是在大型网站中最好的处理方法,因为截取后的不完整标题无法表达文章的大意,一般都是有一个ShortTitle由编辑填写,字数根据页面需要由编辑来控制。 字符串截取的方法中当然是支持中文的最好,提供两个给你参考。 /**
* @name substr_gbk
* @Desc 字符串截取函数,适用于GBK编码的字符串
* @author 十月GG(TaoShuChen)
* @param $str String 目标字符串
* @param $length int 所需截取的长度
* @param $other String 是否添加后缀
* @return $rstr String 截取后的字符串
*/
function substr_gbk($str,$length=10,$other='...') {
for($i=0,$j=0;$i<$length;$i++){
if(ord(substr($str,$i,1))>0xa0){
$j++;
}
}
if($j%2!=0) $length++;
$rstr=substr($str,0,$length);
if (strlen($str)>$length && !empty($other)) {
$rstr.= $other;
}
return $rstr;
} /**
* @name substr_utf8
* @Desc 字符串截取函数,适用于UTF8编码的字符串
* @author 十月GG(TaoShuChen)
* @param $str String 目标字符串
* @param $start int 开始位置
* @param $length int 所需截取的长度
* @param $other String 是否添加后缀
* @return $result String 截取后的字符串
*/function substr_utf8($str, $start=0, $length=10, $other='...') {
$pa="/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|";
$pa.="\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/";
preg_match_all($pa, $str, $t_string);
if(count($t_string[0]) - $start > $length && !empty($other)) {
return $result = implode('', array_slice($t_string[0], $start, $length)) . $other;
} else {
return $result = implode('', array_slice($t_string[0], $start, $length));
}
}
温馨提示:答案为网友推荐,仅供参考