在thinkphp模板引擎裡可以這樣寫:{$vo.title|msubstr=0,5,’utf-8′,false}
擴充函數庫的方法不能直接使用,需要載入或者拷貝到項目函數庫中才能使用。
載入擴充函數庫,使用:
Load('extend');
載入在相應的Action中
msubstr($str, $start=0, $length, $charset="utf-8″, $suffix=true)
$str:要截取的字串
$start=0:開始位置,預設從0開始
$length:截取長度
$charset="utf-8″:字元編碼,預設UTF-8
$suffix=true:是否在截取後的字元後面顯示省略符號,預設true顯示,false為不顯示
function msubstr($str, $start=0, $length, $charset="utf-8", $suffix=true){ 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."…"; return $slice;}