subpost改良function分享


原来自带的subpost使用之后,每个输出后面都会带“...”大大抵触了前端强迫症人群的观念,所以写了一个改良版,可放置在主题的function.html内,模板的使用上,换一下function名即可

function msubpost($str, $start=0, $length=18, $charset="utf-8", $suffix=false) {
    /**
     *@Date  2015.10.28
     *@Uazoh
     *@利用strlen得到原内容长度,并根据中文字符长度判断是否进行截断
     */
  if(strlen($str) > ($length*2)){
    $suffix = true;
  }else{
    $suffix = false;
  }
  if(function_exists('iconv_substr') || $charset=="utf-8") {
    $slice = iconv_substr($str,$start,$length,$charset);
    if(false === $slice) {
        $slice = '';
    }
  }elseif(function_exists("mb_substr")){
    $slice = mb_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));
  }
  return $suffix ? $slice.'...' : $slice;
}


打赏

评论

暂时关闭,稍后恢复~
文档请看10遍以上!有问题可加QQ群!
发表话题

源素材推荐

提问必知

0.话题发布后没及时显示,请联系官方QQ群管理;
1.话题支持代码,qq截屏直接粘贴,和QQ群一样;
2.问题描述清,比如服务器版本,程序版本;
3.能上代码,就不用文字;
4.把问题发到话题后再发QQ群;
5.如果感觉回复者解答的不错,可以发红包!
6.多帮助别人也是对自己的锻炼!
7.付费讨论中只有提问者和付费用户才可以查看回复

积分规则

1.评论积分+1;每天最多10次奖励
2.发布话题积分+1;每天最多5次奖励
3.垃圾评论积分-500;
4.黄色,暴力,违反我国法律评论直接封号


ThinkCMF 8.0.0发布啦!祝大家节日快乐! 立即体验!