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学习教程之第1天
Jun 15 PHP
PHP为表单获取的URL 地址预设 http 字符串函数代码
May 26 PHP
PHP If Else(elsefi) 语句
Apr 07 PHP
php冒泡排序、快速排序、快速查找、二维数组去重实例分享
Apr 24 PHP
php实现与erlang的二进制通讯实例解析
Jul 23 PHP
自定义session存储机制避免会话保持问题
Oct 08 PHP
jquery+php+ajax显示上传进度的多图片上传并生成缩略图代码
Oct 15 PHP
php同时使用session和cookie来保存用户登录信息的实现代码
May 13 PHP
PHP获取中国时间(上海时区时间)及美国时间的方法
Feb 23 PHP
PHP操作redis实现的分页列表,新增,删除功能封装类与用法示例
Aug 04 PHP
微信推送功能实现方式图文详解
Jul 12 PHP
Laravel如何同时连接多个数据库详解
Aug 13 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 MemCached高级缓存配置图文教程
2010/08/05 PHP
codeigniter中测试通过的分页类示例
2014/04/17 PHP
PHP中cookie和session的区别实例分析
2014/08/28 PHP
Javascript实例教程(19) 使用HoTMetal(5)
2006/12/23 Javascript
js wmp操作代码小结(音乐连播功能)
2008/11/08 Javascript
JavaScript对象链式操作代码(jquery)
2010/07/04 Javascript
同域jQuery(跨)iframe操作DOM(实例讲解)
2013/12/19 Javascript
使用jquery animate创建平滑滚动效果(可以是到顶部、到底部或指定地方)
2014/05/27 Javascript
jQuery事件绑定on()与弹窗实现代码
2016/04/28 Javascript
jQuery基础的工厂函数以及定时器的经典实例分析
2016/05/20 Javascript
JavaScript关于提高网站性能的几点建议(一)
2016/07/24 Javascript
微信小程序 自定义对话框实例详解
2017/01/20 Javascript
微信小程序 Nginx环境配置详细介绍
2017/02/14 Javascript
使用JS实现气泡跟随鼠标移动的动画效果
2017/09/16 Javascript
Nautil 中使用双向数据绑定的实现
2019/10/02 Javascript
node.js文件操作系统实例详解
2019/11/05 Javascript
基于Python的身份证号码自动生成程序
2014/08/15 Python
Python中 Lambda表达式全面解析
2016/11/28 Python
django使用图片延时加载引起后台404错误
2017/04/18 Python
简单实现python进度条脚本
2017/12/18 Python
python3爬取数据至mysql的方法
2018/06/26 Python
python3 深浅copy对比详解
2019/08/12 Python
pandas中ix的使用详细讲解
2020/03/09 Python
Django admin管理工具TabularInline类用法详解
2020/05/14 Python
const和static readonly区别
2013/05/20 面试题
应届毕业生求职信范例分享
2013/12/17 职场文书
大学生咖啡店创业计划书
2014/01/21 职场文书
司机岗位职责
2015/02/04 职场文书
死亡诗社观后感
2015/06/05 职场文书
公司周年庆典致辞
2015/07/30 职场文书
检讨书格式
2019/04/25 职场文书
亲情作文之母爱
2019/09/25 职场文书
JavaScript中document.activeELement焦点元素介绍
2021/11/27 Javascript
postman中form-data、x-www-form-urlencoded、raw、binary的区别介绍
2022/01/18 HTML / CSS
Pandas搭配lambda组合使用详解
2022/01/22 Python
一文搞清楚MySQL count(*)、count(1)、count(col)区别
2022/03/03 MySQL