Heim >php教程 >php手册 >张进杰-THinkPHP 开发模板中截取中文字符串数据长度

张进杰-THinkPHP 开发模板中截取中文字符串数据长度

WBOY
WBOYOriginal
2016-06-16 08:41:131262Durchsuche

THinkPHP 3.1.3 开发模板 截取中文字符串数据长度。网站功能开发,仿站,疑难编程,联系专业工程师 QQ467477957
thinkphp 模板如何截取中文字符串代码
项目开发中,常常会遇到中文字符串截取问题,比如说新闻列表页面需要新闻内容简介,这就要用到字符串截取了。下面我就给大家分享一个已经封装好的字符串截取函数。函数解释:<br> msubstr($str, $start=0, $length, $charset=”utf-8″, $suffix=true)<br> $str:要截取的字符串<br> $start=0:开始位置,默认从0开始<br> $length:截取长度<br> $charset=”utf-8″:字符编码,默认UTF-8<br> $suffix=true:是否在截取后的字符后面显示省略号,默认true显示,false为不显示<br> 模版使用:{$vo.title|msubstr=0,5,'utf-8',false}把如下代码粘贴到thinkphp核心包的/common/functions.php 的最后便可在html模型里直接使用function msubstr($str, $start=0, $length, $charset="utf-8", $suffix=true)  <br>     {  <br>   if(function_exists("mb_substr")){  <br>               if($suffix)  <br>               return mb_substr($str, $start, $length, $charset)."...";  <br>               else<br>                    return mb_substr($str, $start, $length, $charset);  <br>          }  <br>          elseif(function_exists('iconv_substr')) {  <br>              if($suffix)  <br>                   return iconv_substr($str,$start,$length,$charset)."...";  <br>              else<br>                   return iconv_substr($str,$start,$length,$charset);  <br>          }  <br>          $re['utf-8']   = "/[x01-x7f]|[xc2-xdf][x80-xbf]|[xe0-xef]<br>                   [x80-xbf]{2}|[xf0-xff][x80-xbf]{3}/";  <br>          $re['gb2312'] = "/[x01-x7f]|[xb0-xf7][xa0-xfe]/";  <br>          $re['gbk']    = "/[x01-x7f]|[x81-xfe][x40-xfe]/";  <br>          $re['big5']   = "/[x01-x7f]|[x81-xfe]([x40-x7e]|xa1-xfe])/";  <br>          preg_match_all($re[$charset], $str, $match);  <br>          $slice = join("",array_slice($match[0], $start, $length));  <br>          if($suffix) return $slice."…";  <br>          return $slice;<br>     }
开发模板里使用,<tr> <br>   <td><b>简述:</b></td> <br>   <td><label><br>  <br>   <textarea>{$data.brief|msubstr=0,36,'utf-8',false}</textarea><br>   <span>*简述,默认截取36个中文汉字的字符数</span><br>   </label></td> <br> </tr>张进杰-THinkPHP 开发模板中截取中文字符串数据长度
张进杰-THinkPHP 开发模板中截取中文字符串数据长度

AD:真正免费,域名+虚机+企业邮箱=0元

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn