The trash string function of the ThinkPHP template substr, thinkphpsubstr
Truncate string function of the ThinkPHP template substr
Add the following code to Common/function. php:
/*** Intercept a Chinese string **/function msubstr ($ str, $ start = 0, $ length, $ charset = "UTF-8", $ suffix = true) {if (function_exists ("mb_substr") {$ slice = mb_substr ($ str, $ start, $ length, $ charset );} elseif (function_exists ('iconv _ substr') {$ slice = iconv_substr ($ str, $ start, $ length, $ charset );} else {$ 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);} $ fix = ''; if (strlen ($ slice) <strlen ($ str) {$ fix = '... ';} return $ suffix? $ Slice. $ fix: $ slice ;}
When the front-end page needs to intercept strings
{$v.title|msubstr=0,5}
/*************************************** ********************************** ****************/
// Public function NewsList () {$ this-> assign ('title', 'News'); $ p = I ('page', 1 ); $ listRows = 10; $ News = M ('News'); $ info = $ news-> field ('Id, title, subtitle, publish_date, img, content ') -> where (array ('type' => 'News', 'status' => '1')-> order ('flag desc, sort_no desc ') -> page ($ p, $ listRows)-> select (); $ this-> assign ('News', $ info ); $ count = $ News-> where (array ('type' => 'News', 'status' => '1')-> count (); $ Page = new Page ($ count, $ listRows); $ show = $ Page-> show (); $ this-> assign ('page', $ show ); // var_dump ($ info); $ this-> display ();}