ThinkPHP的截取字符串函数无法显示省略号的解决方法


Posted in PHP onJune 25, 2014

对于ThinkPHP的截取字符串函数无法显示省略号的情况,解决方法如下:
打开Common/extend.php页面,修改msubstr函数如下:

function msubstr($str, $start=0, $length, $charset="utf-8", $suffix=true)
{
  if(function_exists("mb_substr")) {
   if($suffix)
  {
     if($str==mb_substr($str, $start, $length, $charset)) 
     {
      return mb_substr($str, $start, $length, $charset); 
     }
     else
     {
      return mb_substr($str, $start, $length, $charset)."..."; 
     } 
 }
    else 
 {
   return mb_substr($str, $start, $length, $charset);
  }
  }
  elseif(function_exists('iconv_substr')) {
   if($suffix)
  {
     if($str==iconv_substr($str,$start,$length,$charset)) 
     {
      return iconv_substr($str,$start,$length,$charset); 
     }
     else
     {
      return iconv_substr($str,$start,$length,$charset)."..."; 
     } 
   }
    else 
 {
   return iconv_substr($str,$start,$length,$charset);
  }
  }
  $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));
  if($suffix) return $slice."…";
  return $slice;
}
PHP 相关文章推荐
BBS(php & mysql)完整版(五)
Oct 09 PHP
ADODB类使用
Nov 25 PHP
php 的加密函数 md5,crypt,base64_encode 等使用介绍
Apr 09 PHP
改写函数实现PHP二维/三维数组转字符串
Sep 13 PHP
CodeIgniter中使用cookie的三种方式详解
Jul 18 PHP
php结合ACCESS的跨库查询功能
Jun 12 PHP
CI框架常用方法小结
May 17 PHP
php 中奖概率算法实现代码
Jan 25 PHP
[原创]php实现数组按拼音顺序排序的方法
May 03 PHP
PHP实现模拟http请求的方法分析
Dec 20 PHP
laravel实现上传图片并在页面显示的例子
Oct 14 PHP
PHP实现新型冠状病毒疫情实时图的实例
Feb 04 PHP
ThinkPHP多表联合查询的常用方法
Mar 24 #PHP
ThinkPHP2.0读取MSSQL提示Incorrect syntax near the keyword 'AS'的解决方法
Jun 25 #PHP
ThinkPHP查询中的魔术方法简述
Jun 25 #PHP
Thinkphp实现MySQL读写分离操作示例
Jun 25 #PHP
Zend Framework页面缓存实例
Jun 25 #PHP
非常好用的Zend Framework分页类
Jun 25 #PHP
PHP生成等比缩略图类和自定义函数分享
Jun 25 #PHP
You might like
PHP中创建并处理图象
2006/10/09 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
2017/09/22 PHP
php-fpm中max_children的配置
2019/03/15 PHP
用 JavaScript 迁移目录
2006/12/18 Javascript
jQuery 源代码显示控件 (Ajax加载方式).
2009/05/18 Javascript
js下用gb2312编码解码实现方法
2009/12/31 Javascript
用js实现的自定义的对话框的实现代码
2010/03/21 Javascript
Jquery 例外被抛出且未被接住原因介绍
2013/09/04 Javascript
js获取微信版本号的方法
2015/05/12 Javascript
jQuery实现批量判断表单中文本框非空的方法(2种方法)
2015/12/09 Javascript
js实现文字垂直滚动和鼠标悬停效果
2015/12/31 Javascript
微信小程序 轮播图swiper详解及实例(源码下载)
2017/01/11 Javascript
JavaScript无阻塞加载和defer、async详解
2017/02/26 Javascript
nodejs入门教程四:URL相关模块用法分析
2017/04/24 NodeJs
JavaScript判断输入是否为数字类型的方法总结
2017/09/28 Javascript
vue2.0路由切换后页面滚动位置不变BUG的解决方法
2018/03/14 Javascript
JavaScript数据结构与算法之二叉树实现查找最小值、最大值、给定值算法示例
2019/03/01 Javascript
浅谈监听单选框radio改变事件(和layui中单选按钮改变事件)
2019/09/10 Javascript
小程序实现上下移动切换位置
2019/09/23 Javascript
Vue结合路由配置递归实现菜单栏功能
2020/06/16 Javascript
[01:09:23]KG vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python批量安装卸载1000个apk的方法
2020/04/10 Python
python进度条显示-tqmd模块的实现示例
2020/08/23 Python
CSS3动画之利用requestAnimationFrame触发重新播放功能
2019/09/11 HTML / CSS
马来西亚和新加坡巴士票在线预订:CatchThatBus
2018/11/17 全球购物
Cocopanda波兰:购买化妆品、护肤品、护发和香水
2020/05/25 全球购物
春季运动会广播稿大全
2014/02/19 职场文书
推荐信模板
2014/05/09 职场文书
运动会加油口号
2014/06/07 职场文书
小学生清明节演讲稿
2014/09/05 职场文书
2014幼儿园家长工作总结
2014/11/10 职场文书
2014年企业党建工作总结
2014/12/18 职场文书
喋血孤城观后感
2015/06/08 职场文书
我爱我班主题班会
2015/08/13 职场文书
Python字符串常规操作小结
2022/04/03 Python
美国运营商 T-Mobile 以 117.83Mb/s 的速度排第一位
2022/04/21 数码科技