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自动生成月历代码
Oct 09 PHP
用函数读出数据表内容放入二维数组
Oct 09 PHP
PHP4实际应用经验篇(8)
Oct 09 PHP
Mysql的GROUP_CONCAT()函数使用方法
Mar 28 PHP
一个比较简单的PHP 分页分组类
Dec 10 PHP
PHP 编写大型网站问题集
May 07 PHP
PHP连接SQLServer2005的实现方法(附ntwdblib.dll下载)
Jul 02 PHP
PHP内存使用情况如何获取
Oct 10 PHP
Symfony2联合查询实现方法
Mar 18 PHP
在laravel中使用Symfony的Crawler组件分析HTML
Jun 19 PHP
PHP实现websocket通信的方法示例
Aug 28 PHP
如何在centos8自定义目录安装php7.3
Nov 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网站安装程序制作的原理、步骤、注意事项和示例代码
2010/08/01 PHP
php使用cookie实现记住用户名和密码实现代码
2015/04/27 PHP
Prototype 学习 工具函数学习($A方法)
2009/07/12 Javascript
JQuery实现的在新窗口打开链接的方法小结
2010/04/22 Javascript
IE8下String的Trim()方法失效的解决方法
2013/11/08 Javascript
详解vue项目优化之按需加载组件-使用webpack require.ensure
2017/06/13 Javascript
详解angularJS自定义指令间的相互交互
2017/07/05 Javascript
Vuejs 单文件组件实例详解
2018/02/09 Javascript
js input输入百分号保存数据库失败的解决方法
2018/05/26 Javascript
JS解惑之Object中的key是有序的么
2019/05/06 Javascript
浅谈vue.use()方法从源码到使用
2019/05/12 Javascript
js实现淘宝首页的banner栏效果
2019/11/26 Javascript
vscode 调试 node.js的方法步骤
2020/09/15 Javascript
Python中的Matplotlib模块入门教程
2015/04/15 Python
Linux中Python 环境软件包安装步骤
2016/03/31 Python
Python 编码处理-str与Unicode的区别
2016/09/06 Python
解决python3中cv2读取中文路径的问题
2018/12/05 Python
浅谈Python 列表字典赋值的陷阱
2019/01/20 Python
Flask框架路由和视图用法实例分析
2019/11/07 Python
Python3常见函数range()用法详解
2019/12/30 Python
python实现密码强度校验
2020/03/18 Python
matplotlib 多个图像共用一个colorbar的实现示例
2020/09/10 Python
移动端Web页面的CSS3 flex布局快速上手指南
2016/05/31 HTML / CSS
非凡女性奢华谦虚风格:The Modist
2017/10/28 全球购物
FLOS美国官网:意大利高级照明工艺的传奇
2018/08/07 全球购物
德国最大的网上足球商店:11teamsports
2019/09/11 全球购物
澳大利亚运动鞋商店:Platypus Shoes
2019/09/27 全球购物
《童年》教学反思
2014/02/18 职场文书
最经典的大学生职业生涯规划范文
2014/03/05 职场文书
男女朋友协议书
2014/04/23 职场文书
启动仪式策划方案
2014/06/14 职场文书
2014年计划生育工作总结
2014/11/14 职场文书
《普罗米修斯》教学反思
2016/02/22 职场文书
MySQL InnoDB ReplicaSet(副本集)简单介绍
2021/04/24 MySQL
Java实现房屋出租系统详解
2021/10/05 Java/Android
MySQL选择合适的备份策略和备份工具
2022/06/01 MySQL