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 相关文章推荐
如何开发一个虚拟域名系统
Oct 09 PHP
PHP新手上路(十四)
Oct 09 PHP
PHP 模板高级篇总结
Dec 21 PHP
将文件夹压缩成zip文件的php代码
Dec 14 PHP
PHP实现域名whois查询的代码(数据源万网、新网)
Feb 22 PHP
php使用curl抓取qq空间的访客信息示例
Feb 28 PHP
免费手机号码归属地API查询接口和PHP使用实例分享
Apr 10 PHP
PHP中使用CURL模拟登录并获取数据实例
Jul 01 PHP
Yii中CGridView关联表搜索排序方法实例详解
Dec 03 PHP
Java和PHP在Web开发方面对比分析
Mar 01 PHP
实现PHP+Mysql无限分类的方法汇总
Mar 02 PHP
PHP中ltrim()函数的用法与实例讲解
Mar 28 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
php之对抗Web扫描器的脚本技巧
2008/10/01 PHP
学习php设计模式 php实现命令模式(command)
2015/12/08 PHP
PHP Redis扩展无法加载的问题解决方法
2019/08/22 PHP
通过$(this)使用jQuery包装后的方法或属性
2014/05/18 Javascript
js 操作符汇总
2014/11/08 Javascript
JS+CSS实现弹出全屏灰黑色透明遮罩效果的方法
2014/12/20 Javascript
jQuery实现图片渐入渐出切换展示效果
2015/08/15 Javascript
jQuery实现form表单元素序列化为json对象的方法
2015/12/09 Javascript
《javascript少儿编程》location术语总结
2018/05/27 Javascript
Angular6 用户自定义标签开发的实现方法
2019/01/08 Javascript
JS异步错误捕获的一些事小结
2019/04/26 Javascript
详解在Javascript中进行面向切面编程
2019/04/28 Javascript
基于Node.js的大文件分片上传示例
2019/06/19 Javascript
layui清空,重置表单数据的实例
2019/09/12 Javascript
react quill中图片上传由默认转成base64改成上传到服务器的方法
2019/10/30 Javascript
[33:23]Secret vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python 中的列表解析和生成表达式
2011/03/10 Python
python爬虫框架talonspider简单介绍
2017/06/09 Python
python通过opencv实现批量剪切图片
2017/11/13 Python
PyQt5每天必学之拖放事件
2020/08/27 Python
Python系统监控模块psutil功能与经典用法分析
2018/05/24 Python
Sanic框架安装与简单入门示例
2018/07/16 Python
python实现linux下抓包并存库功能
2018/07/18 Python
python自动化生成IOS的图标
2018/11/13 Python
Python设计模式之观察者模式原理与用法详解
2019/01/16 Python
Python字典的基本用法实例分析【创建、增加、获取、修改、删除】
2019/03/05 Python
Python3爬虫RedisDump的安装步骤
2021/02/20 Python
CSS+jQuery实现的在线答题功能
2015/04/25 HTML / CSS
世界上最大的在线旅行社新加坡网站:Expedia新加坡
2016/08/25 全球购物
世界知名接发和假发品牌:Poze Hair
2017/03/08 全球购物
如何用Java判断一个文件或目录是否存在
2012/11/19 面试题
宣传工作经验材料
2014/06/02 职场文书
导游词之白茶谷九龙峡
2019/10/23 职场文书
利用javaScript处理常用事件详解
2021/04/14 Javascript
vue整合百度地图显示指定地点信息
2022/04/06 Vue.js