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中实现简单的ACL 完结篇
Sep 07 PHP
深入PHP autoload机制的详解
Jun 09 PHP
php获取textarea的值并处理回车换行的方法
Oct 20 PHP
smarty模板引擎使用内建函数foreach循环取出所有数组值的方法
Jan 22 PHP
PHP实现的蚂蚁爬杆路径算法代码
Dec 03 PHP
php支持断点续传、分块下载的类
May 02 PHP
Apache PHP MySql安装配置图文教程
Aug 27 PHP
php rmdir使用递归函数删除非空目录实例详解
Oct 20 PHP
php格式文件打开的四种方法
Feb 24 PHP
php无限极分类实现方法分析
Jul 04 PHP
Laravel 实现添加多语言提示信息
Oct 25 PHP
phpstudy2020搭建站点的实现示例
Oct 30 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
根德Grundig S400/S500/S700电路分析
2021/03/02 无线电
PHP性能优化工具篇Benchmark类调试执行时间
2011/12/06 PHP
PHP实现多关键字加亮功能
2016/10/21 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
2018/02/08 PHP
基于swoole实现多人聊天室
2018/06/14 PHP
超清晰的document对象详解
2007/02/27 Javascript
关于IE、Firefox、Opera页面呈现异同 写脚本很痛苦
2009/08/28 Javascript
jquery插件制作 自增长输入框实现代码
2012/08/17 jQuery
JS小功能(setInterval实现图片效果显示时间)实例代码
2013/11/28 Javascript
DIV始终居中的js代码
2014/02/17 Javascript
node.js中的socket.io入门实例
2014/04/26 Javascript
Javascript将数字转化成为货币格式字符串
2016/06/22 Javascript
微信小程序icon组件使用详解
2018/01/31 Javascript
Element-UI Table组件上添加列拖拽效果实现方法
2018/04/14 Javascript
Vue单页及多页应用全局配置404页面实践记录
2018/05/22 Javascript
vue搜索和vue模糊搜索代码实例
2019/05/07 Javascript
在Python中处理字符串之isdecimal()方法的使用
2015/05/20 Python
浅谈终端直接执行py文件,不需要python命令
2017/01/23 Python
python中正则表达式的使用方法
2018/02/25 Python
Python读写zip压缩文件的方法
2018/08/29 Python
python opencv实现证件照换底功能
2019/08/19 Python
PyTorch中permute的用法详解
2019/12/30 Python
Python @property装饰器原理解析
2020/01/22 Python
python numpy--数组的组合和分割实例
2020/02/24 Python
查看已安装tensorflow版本的方法示例
2020/04/19 Python
在Keras中实现保存和加载权重及模型结构
2020/06/15 Python
css3圆角边框和边框阴影示例
2014/05/05 HTML / CSS
印度网上药店:1mg
2017/10/13 全球购物
Shopbop中文官网:美国亚马逊旗下时尚购物网站
2020/12/15 全球购物
医德考评自我评价
2014/09/14 职场文书
2014物价局民主生活会对照检查材料思想汇报
2014/09/24 职场文书
护士2015年终工作总结
2015/04/29 职场文书
七一晚会主持词
2015/06/29 职场文书
董事会决议范本
2015/07/01 职场文书
运动会宣传稿50字
2015/07/23 职场文书
基于Python编写简易版的天天跑酷游戏的示例代码
2022/03/23 Python