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中的字符串函数
Oct 09 PHP
通过ICQ网关发送手机短信的PHP源程序
Oct 09 PHP
基于qmail的完整WEBMAIL解决方案安装详解
Oct 09 PHP
php与XML、XSLT、Mysql的结合运用实现代码
Nov 19 PHP
windows下开发并编译PHP扩展的方法
Mar 18 PHP
回帖脱衣服的图片实现代码
Feb 15 PHP
php可生成缩略图的文件上传类实例
Dec 17 PHP
Thinkphp模板标签if和eq的区别和比较实例分析
Jul 01 PHP
PHP实现的简单分页类及用法示例
May 06 PHP
Yii2.0表关联查询实例分析
Jul 18 PHP
php使用strip_tags()去除html标签仍有空白的解决方法
Jul 28 PHP
PHP实现数据库统计时间戳按天分组输出数据的方法
Oct 10 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中判断数组相等的方法以及数组运算符介绍
2015/03/30 PHP
ThinkPHP打水印及设置水印位置的方法
2016/10/14 PHP
PHP下 Mongodb 连接远程数据库的实例代码
2017/08/30 PHP
php微信扫码支付 php公众号支付
2019/03/24 PHP
javascript 使td内容不换行不撑开
2012/11/29 Javascript
JavaScript中“+”的陷阱深刻理解
2012/12/04 Javascript
jquery ztree实现下拉树形框使用到了json数据
2014/05/14 Javascript
浅谈JSON中stringify 函数、toJosn函数和parse函数
2015/01/26 Javascript
基于jQuery滑动杆实现购买日期选择效果
2015/09/15 Javascript
深入理解jQuery事件绑定
2016/06/02 Javascript
javascript字符串对象常用api函数小结(连接,替换,分割,转换等)
2016/09/20 Javascript
微信小程序实现倒计时60s获取验证码
2020/04/17 Javascript
AngularJS基于MVC的复杂操作实例讲解
2017/12/31 Javascript
AngularJS使用ui-route实现多层嵌套路由的示例
2018/01/10 Javascript
JS使用遮罩实现点击某区域以外时弹窗的弹出与关闭功能示例
2018/07/31 Javascript
用 js 写一个 js 解释器过程详解
2019/08/02 Javascript
Vue分页效果与购物车功能
2019/12/13 Javascript
JS实现联想、自动补齐国家或地区名称的功能
2020/07/07 Javascript
浅谈JavaScript 声明提升
2020/09/14 Javascript
jQuery实现电梯导航模块
2020/12/22 jQuery
原生js实现放大镜组件
2021/01/22 Javascript
Python的randrange()方法使用教程
2015/05/15 Python
python类:class创建、数据方法属性及访问控制详解
2016/07/25 Python
Python批量查询域名是否被注册过
2017/06/21 Python
详解Python3 pickle模块用法
2019/09/16 Python
python matplotlib 绘图 和 dpi对应关系详解
2020/03/14 Python
pycharm部署、配置anaconda环境的教程
2020/03/24 Python
python实现对变位词的判断方法
2020/04/05 Python
Keras 利用sklearn的ROC-AUC建立评价函数详解
2020/06/15 Python
使用python画出逻辑斯蒂映射(logistic map)中的分叉图案例
2020/12/11 Python
tensorflow2.0教程之Keras快速入门
2021/02/20 Python
幼儿园新学期寄语
2014/01/18 职场文书
个人维稳承诺书
2015/05/04 职场文书
在职证明书模板
2015/06/15 职场文书
MySQL sql_mode的使用详解
2021/05/08 MySQL
使用javascript解析二维码的三种方式
2021/11/11 Javascript