ThinkPHP截取部分文章文字、字符串

avatar 2016年11月17日22:19:19 1 2648 views
博主分享免费Java教学视频,B站账号:Java刘哥
ThinkPHP有一个内置字符截取函数msubstr()如下:
  1. msubstr($str$start=0, $length$charset=”utf-8″, $suffix=true)
  2. $str:要截取的字符串
  3. $start=0:开始位置,默认从0开始
  4. $length:截取长度
  5. $charset=”utf-8″:字符编码,默认UTF-8
  6. $suffix=true:是否在截取后的字符后面显示省略号,默认true显示,false为不显示
在function.php定义msubstr函数
  1. function msubstr($str$start=0, $length$charset="utf-8"$suffix=true){
  2.     if(function_exists("mb_substr")){
  3.         if($suffix){
  4.             return mb_substr($str$start$length$charset)."...";
  5.         }else{
  6.             return mb_substr($str$start$length$charset);
  7.         }
  8.     }elseif(function_exists('iconv_substr')) {
  9.         if($suffix){
  10.             return iconv_substr($str,$start,$length,$charset)."...";
  11.         }else{
  12.             return iconv_substr($str,$start,$length,$charset);
  13.         }
  14.     }
  15.     $re['utf-8']   = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/";
  16.     $re['gb2312'] = "/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/";
  17.     $re['gbk']    = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/";
  18.     $re['big5']   = "/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/";
  19.     preg_match_all($re[$charset], $str$match);
  20.     $slice = join("",array_slice($match[0], $start$length));
  21.     if($suffix){
  22.         return $slice."...";
  23.     }else{
  24.         return $slice;
  25.     }
  26. }
调用该函数:
  1. {$vo['title']|msubstr=5,5,'utf-8',false}
  本文地址:http://liuyanzhao.com/3562.html 转载请注明  
  • 微信
  • 交流学习,有偿服务
  • weinxin
  • 博客/Java交流群
  • 资源分享,问题解决,技术交流。群号:590480292
  • weinxin
avatar

发表评论

avatar 登录者:匿名
匿名评论,评论回复后会有邮件通知

  

已通过评论:0   待审核评论数:0