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

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

WBOY
WBOYOriginal
2016-06-16 08:41:131243browse

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元

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn