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 相关文章推荐
PHP和XSS跨站攻击的防范
Apr 17 PHP
Discuz!下Memcache缓存实现方法
May 28 PHP
PHP array操作10个小技巧分享
Jun 23 PHP
PHP禁止页面缓存的代码
Oct 23 PHP
跟我学Laravel之路由
Oct 15 PHP
Yii操作数据库实现动态获取表名的方法
Mar 29 PHP
通过chrome浏览器控制台(Console)进行PHP Debug的方法
Oct 19 PHP
PHP HTTP 认证实例详解
Nov 03 PHP
Laravel给生产环境添加监听事件(SQL日志监听)
Jun 19 PHP
PHP获取文件扩展名的常用方法小结【五种方式】
Apr 27 PHP
php微信开发之关键词回复功能
Jun 13 PHP
Laravel如何创建服务器提供者实例代码
Apr 15 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实现的MySQL数据浏览器
2007/03/11 PHP
解析php中const与define的应用区别
2013/06/18 PHP
Zend Framework动作助手FlashMessenger用法详解
2016/03/05 PHP
php使用变量动态创建类的对象用法示例
2017/02/06 PHP
PHP堆栈调试操作简单示例
2018/06/15 PHP
PHP实现的微信公众号扫码模拟登录功能示例
2019/05/30 PHP
javascript 当前日期加(天、周、月、年)
2009/08/09 Javascript
javascript 面向对象全新理练之继承与多态
2009/12/03 Javascript
js 点击按钮弹出另一页,选择值后,返回到当前页
2010/05/26 Javascript
jQuery选择器的工作原理和优化分析
2011/07/25 Javascript
浅析Prototype的模板类 Template
2011/12/07 Javascript
javascript中的void运算符语法及使用介绍
2013/03/10 Javascript
jquery得到font-size属性值实现代码
2013/09/30 Javascript
javascript间隔定时器(延时定时器)学习 间隔调用和延时调用
2014/01/13 Javascript
javascript自定义in_array()函数实现方法
2015/08/03 Javascript
AngularJS实现标签页的两种方式
2016/09/05 Javascript
浅谈js基础数据类型和引用类型,深浅拷贝问题,以及内存分配问题
2017/09/02 Javascript
vue2组件之select2调用的示例代码
2017/10/12 Javascript
浅谈在Vue-cli里基于axios封装复用请求
2017/11/06 Javascript
关于vue的语法规则检测报错问题的解决
2018/05/21 Javascript
微信小程序实现联动选择器
2019/02/15 Javascript
Angular7创建项目、组件、服务以及服务的使用
2019/02/19 Javascript
基于canvasJS在PHP中制作动态图表
2020/05/30 Javascript
Python中的__new__与__init__魔术方法理解笔记
2014/11/08 Python
Windows和Linux下使用Python访问SqlServer的方法介绍
2015/03/10 Python
详解python编译器和解释器的区别
2019/06/24 Python
python 实现单通道转3通道
2019/12/03 Python
解决Keyerror ''acc'' KeyError: ''val_acc''问题
2020/06/18 Python
德国团购网站:Groupon德国
2018/03/13 全球购物
数据库专业英语
2012/11/30 面试题
入党申请人的自我鉴定
2013/12/01 职场文书
《小壁虎借尾巴》教学反思
2014/02/16 职场文书
新员工入职欢迎词
2015/01/23 职场文书
初二物理教学反思
2016/02/19 职场文书
Redis安装使用RedisJSON模块的方法
2022/03/23 Redis
html中两种获取标签内的值的方法
2022/06/10 HTML / CSS