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 文章采集正则代码
Dec 28 PHP
PHP获取表单textarea数据中的换行问题
Sep 10 PHP
php设计模式 Template (模板模式)
Jun 26 PHP
PHP Class&Object -- 解析PHP实现二叉树
Jun 25 PHP
PHP实现数字补零功能的2个函数介绍
May 12 PHP
php调用淘宝开放API实现根据卖家昵称获取卖家店铺ID的方法
Jul 29 PHP
PHP实现json_decode不转义中文的方法
May 20 PHP
PHP实现简单计算器小程序
Aug 28 PHP
零基础php编程好学吗
Oct 11 PHP
Yii框架自定义数据库操作组件示例
Nov 11 PHP
Laravel + Elasticsearch 实现中文搜索的方法
Feb 02 PHP
Laravel 自动转换长整型雪花 ID 为字符串的实现
Oct 27 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
在JavaScript中调用php程序
2009/03/09 PHP
phpize的深入理解
2013/06/03 PHP
thinkphp的c方法使用示例
2014/02/24 PHP
详解WordPress中提醒安装插件以及隐藏插件的功能实现
2015/12/25 PHP
jquery trim() 功能源代码
2011/02/14 Javascript
For循环中分号隔开的3部分的执行顺序探讨
2014/05/27 Javascript
JavaScript判断文件上传类型的方法
2014/09/02 Javascript
js仿黑客帝国字母掉落效果代码分享
2020/11/08 Javascript
Bootstrap菜单按钮及导航实例解析
2016/09/09 Javascript
100行代码理解和分析vue2.0响应式架构
2017/03/09 Javascript
Vue计算属性的使用
2017/08/04 Javascript
基于js中的原型(全面讲解)
2017/09/19 Javascript
Vue.js 利用v-for中的index值实现隔行变色
2018/08/01 Javascript
Vue 框架之键盘事件、健值修饰符、双向数据绑定
2018/11/14 Javascript
vue-cli3 项目从搭建优化到docker部署的方法
2019/01/28 Javascript
JavaScript算法学习之冒泡排序和选择排序
2019/11/02 Javascript
JS图片懒加载的优点及实现原理
2020/01/10 Javascript
[38:23]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第一场
2014/05/24 DOTA
Python的time模块中的常用方法整理
2015/06/18 Python
Python实现的ftp服务器功能详解【附源码下载】
2019/06/26 Python
OpenCV python sklearn随机超参数搜索的实现
2020/01/17 Python
python常用运维脚本实例小结
2020/02/14 Python
HTML5 UTF-8 中文乱码的解决方法
2013/11/18 HTML / CSS
HTML5逐步分析实现拖放功能的方法
2020/09/30 HTML / CSS
优衣库台湾官网:UNIQLO台湾
2019/02/01 全球购物
大学生毕业自我鉴定
2013/11/06 职场文书
警察思想汇报
2014/01/04 职场文书
家长会标语
2014/06/24 职场文书
给女朋友道歉的话大全
2015/01/20 职场文书
工程技术负责人岗位职责
2015/04/13 职场文书
农业项目合作意向书
2015/05/08 职场文书
环保证明
2015/06/23 职场文书
部门主管竞聘书
2015/09/15 职场文书
七夕情人节问候语
2015/11/11 职场文书
解决Goland 同一个package中函数互相调用的问题
2021/05/06 Golang
超详细Python解释器新手安装教程
2021/05/10 Python