thinkphp前台模版字符串截取

ThinkPHP\Common\extend.php 中管理前台模版的截取{$vons.title|msubstr=0,26}

原始的代码是无法使用截取支持….  由于涉及到只有汉字检测最为准确

需要加入代码让他正常的分页截取之后加入…

function msubstr($str, $start=0, $length, $charset=”utf-8″, $suffix=true)
{
if(strlen($str)/3>$length){
if(function_exists(“mb_substr”)){
return mb_substr($str, $start, $length, $charset).’…’;
}
elseif(function_exists(‘iconv_substr’)) {
return iconv_substr($str,$start,$length,$charset).’…’;
}
$re['utf-8']   = “/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/”;
$re['gb2312'] = “/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/”;
$re['gbk']    = “/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/”;
$re['big5']   = “/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/”;
preg_match_all($re[$charset], $str, $match);
$slice = join(“”,array_slice($match[0], $start, $length));
if($suffix){
return $slice;
}else{
return $slice;
}
}
return $str;
}

 

posted @ 2013-08-08 10:04  王翔(kingfly)  阅读(2880)  评论(1编辑  收藏  举报