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 相关文章推荐
4.与数据库的连接
Oct 09 PHP
基于mysql的论坛(6)
Oct 09 PHP
如何使用PHP往windows中添加用户
Dec 06 PHP
php pcntl_fork和pcntl_fork 的用法
Apr 13 PHP
php生成局部唯一识别码LUID的代码
Oct 06 PHP
php daddslashes()和 saddslashes()有哪些区别分析
Oct 26 PHP
Zend Framework教程之连接数据库并执行增删查的方法(附demo源码下载)
Mar 21 PHP
php批量删除操作(数据访问)
May 23 PHP
YII2框架中excel表格导出的方法详解
Jul 21 PHP
PHP文件管理之实现网盘及压缩包的功能操作
Sep 20 PHP
thinkPHP框架动态配置用法实例分析
Jun 14 PHP
PHP 超级全局变量相关总结
Jun 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
php数据库密码的找回的步骤
2011/01/12 PHP
php简单解析mysqli查询结果的方法(2种方法)
2016/06/29 PHP
微信公众号开发之获取位置信息php代码
2018/06/13 PHP
表单元素事件 (Form Element Events)
2009/07/17 Javascript
js 小贴士一星期合集
2010/04/07 Javascript
js下获得客户端操作系统的函数代码(1:vista,2:windows7,3:2000,4:xp,5:2003,6:2008)
2011/10/31 Javascript
页面调用单个swf文件,嵌套出多个方法。
2011/11/21 Javascript
10个基于浏览器的JavaScript调试工具分享
2013/02/07 Javascript
终于解决了IE8不支持数组的indexOf方法
2013/04/03 Javascript
判断滚动条到底部的JS代码
2013/11/04 Javascript
jQuery实现鼠标滑过链接控制图片的滑动展开与隐藏效果
2015/10/28 Javascript
window.setInterval()方法的定义和用法及offsetLeft与style.left的区别
2015/11/11 Javascript
vue+express 构建后台管理系统的示例代码
2018/07/19 Javascript
NodeJS使用Range请求实现下载功能的方法示例
2018/10/12 NodeJs
vue-cli3环境变量与分环境打包的方法示例
2019/02/18 Javascript
node.js使用 http-proxy 创建代理服务器操作示例
2020/02/10 Javascript
JavaScript Tab菜单实现过程解析
2020/05/13 Javascript
详解JS函数防抖
2020/06/05 Javascript
Vue3新特性之在Composition API中使用CSS Modules
2020/07/13 Javascript
Python实现通过继承覆盖方法示例
2018/07/02 Python
在Pycharm中自动添加时间日期作者等信息的方法
2019/01/16 Python
浅谈python3.6的tkinter运行问题
2019/02/22 Python
Python OpenCV之图片缩放的实现(cv2.resize)
2019/06/28 Python
Python发送邮件的实例代码讲解
2019/10/16 Python
adidas菲律宾官网:adidas PH
2020/02/07 全球购物
字符串str除首尾字符外的其他字符按升序排列
2013/03/08 面试题
介绍一下Linux内核的排队自旋锁
2014/01/04 面试题
中学教师岗位职责
2013/11/26 职场文书
项目管理计划书
2014/01/09 职场文书
给交警的表扬信
2014/01/12 职场文书
优秀本科毕业生自荐信
2014/07/04 职场文书
建筑施工安全责任书
2014/07/24 职场文书
学校重阳节活动总结
2015/03/24 职场文书
2015年团支部工作总结
2015/04/03 职场文书
少先队工作总结2015
2015/05/13 职场文书
golang正则之命名分组方式
2021/04/25 Golang