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 相关文章推荐
php4的彩蛋
Oct 09 PHP
APMServ使用说明
Oct 23 PHP
php foreach 参数强制类型转换的问题
Dec 10 PHP
10条PHP高级技巧[修正版]
Aug 02 PHP
PHP函数microtime()用法与说明
Dec 04 PHP
PHP中的use关键字及文件的加载详解
Nov 28 PHP
thinkPHP交易详情查询功能详解
Dec 02 PHP
PHP多进程编程实例详解
Jul 19 PHP
微信接口生成带参数的二维码
Jul 31 PHP
PHP var关键字相关原理及使用实例解析
Jul 11 PHP
PHP7 新增常量
Mar 09 PHP
PHP7 windows支持
Mar 09 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过滤危险html代码的函数
2008/07/22 PHP
php 无限级缓存的类的扩展
2009/03/16 PHP
Ping服务的php实现方法,让网站快速被收录
2012/02/04 PHP
Yii中CGridView实现批量删除的方法
2015/12/28 PHP
PHP遍历目录文件的常用方法小结
2017/02/03 PHP
Thinkphp自定义生成缩略图尺寸的方法
2019/08/05 PHP
javascript window.opener的用法分析
2010/04/07 Javascript
jquery插件如何使用 jQuery操作Cookie插件使用介绍
2012/12/15 Javascript
JS定时关闭窗口的实例
2013/05/22 Javascript
angularjs 处理多个异步请求方法汇总
2015/01/06 Javascript
jquery实现鼠标滑过显示提示框的方法
2015/02/05 Javascript
深入理解JavaScript中的call、apply、bind方法的区别
2016/05/30 Javascript
浅谈EasyUI常用控件的禁用方法
2016/11/09 Javascript
微信小程序之圆形进度条实现思路
2018/02/22 Javascript
移动端(微信等使用vConsole调试console的方法
2019/03/05 Javascript
js比较两个单独的数组或对象是否相等的实例代码
2019/04/28 Javascript
jQuery层叠选择器用法实例分析
2019/06/28 jQuery
three.js欧拉角和四元数的使用方法
2020/07/26 Javascript
vue 动态生成拓扑图的示例
2021/01/03 Vue.js
[00:17]游戏风云独家报道:DD赛后说出数字秘密 吓死你们啊!
2014/07/13 DOTA
[09:47]2018DOTA2亚洲邀请赛4.5SOLO赛 No[o]ne vs Sumail
2018/04/06 DOTA
[01:10:58]Spirit vs NB Supermajor小组赛 A组败者组决赛 BO3 第二场 6.2
2018/06/03 DOTA
python开发中range()函数用法实例分析
2015/11/12 Python
在Windows中设置Python环境变量的实例讲解
2018/04/28 Python
python批量修改图片大小的方法
2018/07/24 Python
Pytorch数据拼接与拆分操作实现图解
2020/04/30 Python
解决python3中os.popen()出错的问题
2020/11/19 Python
CSS3实现全景图特效示例代码
2018/03/26 HTML / CSS
Yankee Candle官网:美国最畅销蜡烛品牌之一
2020/01/05 全球购物
下列程序在32位linux或unix中的结果是什么
2014/03/25 面试题
毕业生个人求职信范文分享
2014/01/05 职场文书
竞选班长的演讲稿
2014/04/24 职场文书
教师个人教学总结
2015/02/11 职场文书
2015年销售员工作总结范文
2015/04/07 职场文书
教师个人教学反思
2016/02/23 职场文书
vue判断按钮是否可以点击
2022/04/09 Vue.js