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 相关文章推荐
详解:――如何将图片储存在数据库里
Dec 05 PHP
PHP 服务器配置(使用Apache及IIS两种方法)
Jun 01 PHP
那些年一起学习的PHP(二)
Mar 21 PHP
解析数组非数字键名引号的必要性
Aug 09 PHP
PHP实现加密的几种方式介绍
Feb 22 PHP
php实现模拟登陆方正教务系统抓取课表
May 19 PHP
php通过exif_read_data函数获取图片的exif信息
May 21 PHP
WordPress中给文章添加自定义字段及后台编辑功能区域
Dec 19 PHP
CodeIgniter读写分离实现方法详解
Jan 20 PHP
PHP耦合设计模式实例分析
Aug 08 PHP
Laravel5.1 框架数据库操作DB运行原生SQL的方法分析
Jan 07 PHP
PHP实现简单注册登录系统
Dec 28 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
Win9x/ME下Apache+PHP安装配置
2006/10/09 PHP
PHP查看当前变量类型的方法
2015/07/31 PHP
PHP MVC框架skymvc支持多文件上传
2016/05/26 PHP
PHP+Ajax实现的博客文章添加类别功能示例
2018/03/29 PHP
js使用removeChild方法动态删除div元素
2014/08/01 Javascript
js创建对象的方法汇总
2016/01/07 Javascript
JS实用技巧小结(屏蔽错误、div滚动条设置、背景图片位置等)
2016/06/16 Javascript
jQuery点击头像上传并预览图片
2017/02/23 Javascript
详解vue-cli + webpack 多页面实例应用
2017/04/25 Javascript
react-native ListView下拉刷新上拉加载实现代码
2017/08/03 Javascript
vue插件draggable实现拖拽移动图片顺序
2018/12/01 Javascript
react组件从搭建脚手架到在npm发布的步骤实现
2019/01/09 Javascript
jQuery实现的隔行变色功能【案例】
2019/02/18 jQuery
layui清空,重置表单数据的实例
2019/09/12 Javascript
浅谈Vue为什么不能检测数组变动
2019/10/14 Javascript
JavaScript的console命令使用实例
2019/12/03 Javascript
vue实现图片上传预览功能
2019/12/23 Javascript
js实现带箭头的进度流程
2020/03/26 Javascript
将Vue组件库更换为按需加载的方法步骤
2020/05/06 Javascript
解决antd的Form组件setFieldsValue的警告问题
2020/10/29 Javascript
vue 封装面包屑组件教程
2020/11/16 Javascript
Python获取运行目录与当前脚本目录的方法
2015/06/01 Python
Python、PyCharm安装及使用方法(Mac版)详解
2017/04/28 Python
python3.4.3下逐行读入txt文本并去重的方法
2018/04/29 Python
python3 写一个WAV音频文件播放器的代码
2019/09/27 Python
PyQt5的QWebEngineView使用示例
2020/10/20 Python
html5的canvas元素使用方法介绍(画矩形、画折线、圆形)
2014/04/14 HTML / CSS
英国蛋糕装饰用品一站式商店:Craft Company
2019/03/18 全球购物
澳大利亚最超值的自行车之家:Reid Cycles
2019/03/24 全球购物
周生生珠宝香港官网:Chow Sang Sang(香港及海外配送)
2019/09/05 全球购物
策划助理岗位职责
2013/11/18 职场文书
考试违纪检讨书
2014/02/02 职场文书
学习型党组织建设经验材料
2014/05/26 职场文书
党员教师个人对照检查材料(群众路线)
2014/09/26 职场文书
优秀教师个人总结
2015/02/11 职场文书
2015年暑期社会实践报告
2015/07/13 职场文书