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 相关文章推荐
php 变量未定义等错误的解决方法
Jan 12 PHP
深入掌握include_once与require_once的区别
Jun 17 PHP
使用PHP获取当前url路径的函数以及服务器变量
Jun 29 PHP
php+mysql不用递归实现的无限级分类实例(非递归)
Jul 08 PHP
如何让搜索引擎抓取AJAX内容解决方案
Aug 25 PHP
PHP之预定义接口详解
Jul 29 PHP
PHP定时执行任务的3种方法详解
Dec 21 PHP
ThinkPHP中session函数详解
Sep 14 PHP
php微信公众号开发之现金红包
Apr 16 PHP
php常用经典函数集锦【数组、字符串、栈、队列、排序等】
Aug 23 PHP
Laravel 修改默认日志文件名称和位置的例子
Oct 17 PHP
PHP 实现 WebSocket 协议原理与应用详解
Apr 22 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
PHP获得用户使用的代理服务器ip即真实ip
2006/12/31 PHP
PHP笔记之:日期函数的使用介绍
2013/04/24 PHP
php支付宝手机网页支付类实例
2015/03/04 PHP
PHP使用递归算法无限遍历数组示例
2017/01/13 PHP
PHP实现数据四舍五入的方法小结【4种方法】
2019/03/27 PHP
PHP单例模式实例分析【防继承,防克隆操作】
2019/05/22 PHP
Yii框架分页技术实例分析
2019/08/30 PHP
js继承的实现代码
2010/08/05 Javascript
JS中eval函数的使用示例
2013/07/21 Javascript
jquery text(),val(),html()方法区别总结
2013/11/04 Javascript
NodeJS学习笔记之MongoDB模块
2015/01/13 NodeJs
jquery.form.js框架实现文件上传功能案例解析(springmvc)
2016/05/26 Javascript
浅谈javascript:两种注释,声明变量,定义函数
2016/09/29 Javascript
学习JavaScript图片预加载模块
2016/11/07 Javascript
jquery获取easyui日期控件的值实现方法
2016/11/09 Javascript
滚动条的监听与内容随着滚动条动态加载的实现
2017/02/08 Javascript
thinkjs微信中控之微信鉴权登陆的实现代码
2019/08/08 Javascript
google广告之另类js调用实现代码
2020/08/22 Javascript
使用TS来编写express服务器的方法步骤
2020/10/29 Javascript
利用python获取某年中每个月的第一天和最后一天
2016/12/15 Python
python基于ID3思想的决策树
2018/01/03 Python
python 多维切片之冒号和三个点的用法介绍
2018/04/19 Python
解决python3 网络请求路径包含中文的问题
2018/05/10 Python
Python一句代码实现找出所有水仙花数的方法
2018/11/13 Python
在Python 字典中一键对应多个值的实例
2019/02/03 Python
Python多项式回归的实现方法
2019/03/11 Python
python并发编程多进程 互斥锁原理解析
2019/08/20 Python
python print 格式化输出,动态指定长度的实现
2020/04/12 Python
python实现密度聚类(模板代码+sklearn代码)
2020/04/27 Python
使用phonegap检测网络状态的方法
2017/03/30 HTML / CSS
Mytheresa英国官网:拥有160多个奢侈品品牌
2016/10/09 全球购物
学前教育教师求职自荐信
2013/09/22 职场文书
体育教育毕业生自荐信
2014/06/29 职场文书
2015年医院后勤工作总结
2015/05/20 职场文书
2015年乡镇食品安全工作总结
2015/10/22 职场文书
《游戏王:大师决斗》将推出新卡牌包4月4日上线
2022/03/31 其他游戏