thinkPHP内置字符串截取函数用法详解


Posted in PHP onNovember 15, 2016

本文实例讲述了thinkPHP内置字符串截取函数用法。分享给大家供大家参考,具体如下:

thinkphp内置了一个可以媲美smarty的模板引擎,给我们带来了很大的方便。调用函数也一样,可以和smarty一样调用自己需要的函数,而官方也内置了一些常用的函数供大家调用。

比如今天我们说的截取字符串函数,在thinkphp模板引擎里可以这样写:{$vo.title|msubstr=0,5,'utf-8′,false} 至于{$vo.title}这个大家肯定不陌生了。就说说后边的函数msubstr吧。它代表的意思是截取字符串$vo.title,从0个字符开始截取,截取5个字符。使用的是utf-8编码,默认截取后不显示省略号,如果要显示省略号,直接把false改成true就可以啦。

函数解释:

msubstr($str, $start=0, $length, $charset="utf-8", $suffix=true)

参数功能:

$str:要截取的字符串
$start=0:开始位置,默认从0开始
$length:截取长度
$charset="utf-8":字符编码,默认UTF-8
$suffix=true:是否在截取后的字符后面显示省略号,默认true显示,false为不显示

ps:如果不能正常调用,那说明你没有加载函数库,可以使用 Load('extend');来加载函数,把它放到action中就可以啦~!

经试用:官方的msubstr函数好像无论如何也加不上省略号,官网论坛上找了一个修改方法,经测试可以正常使用~!

修改Common\extend.php文件的msubstr函数为如下代码即可:

function msubstr($str, $start=0, $length, $charset="utf-8", $suffix=true)
{
  if(function_exists("mb_substr")){
    if($suffix)
       return mb_substr($str, $start, $length, $charset)."...";
    else
       return mb_substr($str, $start, $length, $charset);
  }
  elseif(function_exists('iconv_substr')) {
    if($suffix)
       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;
}

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
复杂检索数据并分页显示的处理方法
Oct 09 PHP
mysql建立外键
Nov 25 PHP
php下一个阿拉伯数字转中文数字的函数
Jul 16 PHP
php错误、异常处理机制(补充)
May 07 PHP
destoon网站转移服务器后搜索汉字出现乱码的解决方法
Jun 21 PHP
PHP实现利用MySQL保存session的方法
Aug 23 PHP
PHP中echo和print的区别
Aug 28 PHP
PHP会话处理的10个函数
Aug 11 PHP
汇总PHPmailer群发Gmail的常见问题
Feb 24 PHP
php函数传值的引用传递注意事项分析
Jun 25 PHP
PHP自定义函数实现格式化秒的方法
Sep 14 PHP
解决laravel查询构造器中的别名问题
Oct 17 PHP
ThinkPHP简单使用memcache缓存的方法
Nov 15 #PHP
php compact 通过变量创建数组
Nov 15 #PHP
PHP多维数组元素操作类的方法
Nov 14 #PHP
浅谈PHP中关于foreach使用引用变量的坑
Nov 14 #PHP
利用switch语句进行多选一判断的实例代码
Nov 14 #PHP
PHP表单验证内容是否为空的实现代码
Nov 14 #PHP
PHP环境搭建(php+Apache+mysql)
Nov 14 #PHP
You might like
PHP4与PHP5的时间格式问题
2008/02/17 PHP
PHP 组件化编程技巧
2009/06/06 PHP
php实现URL加密解密的方法
2016/11/17 PHP
PHP如何解决微信文章图片防盗链
2020/12/09 PHP
动态加载js的几种方法
2006/10/23 Javascript
Jquey拖拽控件Draggable使用方法(asp.net环境)
2010/09/28 Javascript
初窥JQuery(二) 事件机制(1)
2010/11/25 Javascript
js实现在同一窗口浏览图片
2014/09/17 Javascript
JavaScript测试工具之Karma-Jasmine的安装和使用详解
2015/12/03 Javascript
Javascript中的arguments对象
2016/06/20 Javascript
JSON 对象未定义错误的解决方法
2016/09/29 Javascript
Vue方法与事件处理器详解
2016/12/01 Javascript
js求数组中全部数字可拼接出的最大整数示例代码
2017/08/25 Javascript
vue的传参方式汇总和router使用技巧
2018/05/22 Javascript
[01:54]胎教DOTA2 准妈妈玩家现身中国区预选赛
2016/06/26 DOTA
深入解读Python解析XML的几种方式
2016/02/16 Python
python实现ID3决策树算法
2018/08/29 Python
python2 与 pyhton3的输入语句写法小结
2018/09/10 Python
python框架django项目部署相关知识详解
2019/11/04 Python
基于Python获取docx/doc文件内容代码解析
2020/02/17 Python
Python如何实现定时器功能
2020/05/28 Python
python中逻辑与或(and、or)和按位与或异或(&、|、^)区别
2020/08/05 Python
中国专业的音频分享平台:喜马拉雅
2019/05/24 全球购物
俄罗斯香水和化妆品在线商店:Aroma-butik
2020/02/28 全球购物
几道数据库的概念性面试题
2014/05/30 面试题
工作自我评价分享
2013/12/01 职场文书
大学活动策划书范文
2014/01/10 职场文书
学年末自我鉴定
2014/01/21 职场文书
小学生读书感言
2014/02/12 职场文书
社区先进事迹材料
2014/05/19 职场文书
销售人员工作自我评价
2014/09/21 职场文书
群众路线表态发言材料
2014/10/17 职场文书
2015年五四青年节活动总结
2015/02/10 职场文书
2015年党建工作汇报材料
2015/06/25 职场文书
一劳永逸彻底解决pip install慢的办法
2021/05/24 Python
图文详解nginx日志切割的实现
2022/01/18 Servers