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网站安装程序制作的原理、步骤、注意事项和示例代码
Aug 01 PHP
ThinkPHP写第一个模块应用
Feb 20 PHP
修改php.ini不生效问题解决方法(上传大于8M的文件)
Jun 14 PHP
PHP扩展程序实现守护进程
Apr 16 PHP
PHP页面间传递值和保持值的方法
Aug 24 PHP
浅谈php中urlencode与rawurlencode的区别
Sep 05 PHP
PHP+AJAX 投票器功能
Nov 11 PHP
Laravel 验证码认证学习记录小结
Dec 20 PHP
PHP配合fiddler抓包抓取微信指数小程序数据的实现方法分析
Jan 02 PHP
PHP var关键字相关原理及使用实例解析
Jul 11 PHP
基于PHP实现用户登录注册功能的详细教程
Aug 04 PHP
Laravel中获取IP的真实地理位置
Apr 01 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
使用NetBeans + Xdebug调试PHP程序的方法
2011/04/12 PHP
PHP 获取文件路径(灵活应用__FILE__)
2013/02/15 PHP
php使用 readfile() 函数设置文件大小大小的方法
2017/08/11 PHP
PHP配置ZendOpcache插件加速
2019/02/14 PHP
图片按比例缩放函数
2006/06/26 Javascript
jQuery 源代码显示控件 (Ajax加载方式).
2009/05/18 Javascript
JavaScript对象链式操作代码(jquery)
2010/07/04 Javascript
javascript简单实现命名空间效果
2014/03/06 Javascript
js图片预加载示例
2014/04/30 Javascript
使用jquery.qrcode生成彩色二维码实例
2014/08/08 Javascript
jQuery实现在列表的首行添加数据
2015/05/19 Javascript
jQuery给div,Span, a ,button, radio 赋值与取值
2016/06/24 Javascript
JS中append字符串包含onclick无效传递参数失败的解决方案
2016/12/26 Javascript
深入理解Node.js中通用基础设计模式
2017/09/19 Javascript
浅谈vue的props,data,computed变化对组件更新的影响
2018/01/16 Javascript
JS 实现获取验证码 倒计时功能
2018/10/29 Javascript
js canvas画布实现高斯模糊效果
2018/11/27 Javascript
es6数组的flat(),flatMap()函数用法实例分析
2020/04/18 Javascript
讲解Python中if语句的嵌套用法
2015/05/14 Python
Python 加密的实例详解
2017/10/09 Python
深入理解Django自定义信号(signals)
2018/10/15 Python
Python爬虫将爬取的图片写入world文档的方法
2018/11/07 Python
Python使用MyQR制作专属动态彩色二维码功能
2019/06/04 Python
python 有效的括号的实现代码示例
2019/11/11 Python
python打印n位数“水仙花数”(实例代码)
2019/12/25 Python
Python面向对象封装操作案例详解 II
2020/01/02 Python
Django ModelForm组件原理及用法详解
2020/10/12 Python
python中altair可视化库实例用法
2021/01/26 Python
美国Curacao百货连锁店网站:iCuracao.com
2019/07/20 全球购物
表彰会主持词
2014/03/26 职场文书
大二学习计划书范文
2014/04/27 职场文书
致青春观后感
2015/06/09 职场文书
运动会闭幕式致辞
2015/07/29 职场文书
详解Python自动化之文件自动化处理
2021/06/21 Python
MySQL七种JOIN类型小结
2021/10/24 MySQL
js前端图片加载异常兜底方案
2022/06/21 Javascript