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 相关文章推荐
提问的智慧
Oct 09 PHP
关于尾递归的使用详解
May 02 PHP
php与java通过socket通信的实现代码
Oct 21 PHP
ThinkPHP3.1新特性之G方法的使用
Jun 19 PHP
yii操作session实例简介
Jul 31 PHP
PHP对象相互引用的内存溢出实例分析
Aug 28 PHP
php中get_cfg_var()和ini_get()的用法及区别
Mar 04 PHP
PHP中常用的数组操作方法笔记整理
May 16 PHP
php preg_match的匹配不同国家语言实例
Dec 29 PHP
PHP开发中csrf攻击的简单演示和防范
May 07 PHP
PHP仿tp实现mvc框架基本设计思路与实现方法分析
May 23 PHP
php实现每日签到功能
Nov 29 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
第八节 访问方式 [8]
2006/10/09 PHP
在PHP中实现Javascript的escape()函数代码
2010/08/08 PHP
PHP图像处理之imagecreate、imagedestroy函数介绍
2014/11/19 PHP
如何用javascript去掉字符串里的所有空格
2007/02/08 Javascript
用js判断用户浏览器是否是XP SP2的IE6
2007/03/08 Javascript
jQuery使用cookie与json简单实现购物车功能
2016/04/15 Javascript
最全面的JS倒计时代码
2016/09/17 Javascript
js对字符串进行编码的方法总结(推荐)
2016/11/10 Javascript
微信公众平台开发教程(四) 实例入门:机器人回复(附源码)
2016/12/02 Javascript
canvas雪花效果核心代码分享
2017/02/19 Javascript
原生js封装自定义滚动条
2017/03/24 Javascript
ionic2打包android时gradle无法下载的解决方法
2017/04/05 Javascript
ReactNative实现图片上传功能的示例代码
2017/07/11 Javascript
BootStrap下的弹出框加载select2框架失败的解决方法
2017/08/31 Javascript
详解Angularjs 自定义指令中的数据绑定
2018/07/19 Javascript
一些手写JavaScript常用的函数汇总
2019/04/16 Javascript
vue移动端模态框(可传参)的实现
2019/11/20 Javascript
win7安装python生成随机数代码分享
2013/12/27 Python
wxpython中利用线程防止假死的实现方法
2014/08/11 Python
python实现根据用户输入从电影网站获取影片信息的方法
2015/04/07 Python
Python编程中的异常处理教程
2015/08/21 Python
解决Python中字符串和数字拼接报错的方法
2016/10/23 Python
python3使用pyqt5制作一个超简单浏览器的实例
2017/10/19 Python
哈工大自然语言处理工具箱之ltp在windows10下的安装使用教程
2020/05/07 Python
Html5大文件断点续传实现方法
2015/12/05 HTML / CSS
电大自我鉴定范文
2013/10/01 职场文书
情侣吵架检讨书
2014/02/05 职场文书
超市开业庆典策划方案
2014/05/14 职场文书
环保宣传标语
2014/06/12 职场文书
五四演讲稿范文
2014/09/03 职场文书
工作作风懒散检讨书
2014/10/29 职场文书
2016大学生党校学习心得体会
2016/01/06 职场文书
iPhone13再次曝光
2021/04/15 数码科技
MySQL慢查询的坑
2021/04/28 MySQL
python实现自动清理文件夹旧文件
2021/05/10 Python
Python捕获、播放和保存摄像头视频并提高视频清晰度和对比度
2022/04/14 Python