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 相关文章推荐
PHP5 安装方法
Oct 09 PHP
Linux下将excel数据导入到mssql数据库中的方法
Feb 08 PHP
用PHP的超级变量$_GET获取HTML表单(Form) 数据
May 07 PHP
简单的php中文转拼音的实现代码
Feb 11 PHP
php设计模式之命令模式使用示例
Mar 02 PHP
Linux系统下使用XHProf和XHGui分析PHP运行性能
Dec 08 PHP
Symfony2实现在controller中获取url的方法
Mar 18 PHP
PHP中抽象类和抽象方法概念与用法分析
May 24 PHP
yii插入数据库防并发的简单代码
May 27 PHP
PHP单例模式与工厂模式详解
Aug 29 PHP
PHP使用SMTP邮件服务器发送邮件示例
Aug 28 PHP
thinkphp5框架扩展redis类方法示例
May 06 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下载生成的csv文件及问题总结
2015/08/06 PHP
yii2利用自带UploadedFile实现上传图片的示例
2017/02/16 PHP
PHP常见数组排序方法小结
2018/08/20 PHP
JavaScript的eval JSON object问题
2009/11/15 Javascript
jquery 年会抽奖程序
2011/12/22 Javascript
FusionCharts图表显示双Y轴双(多)曲线
2012/11/22 Javascript
原生js实现改变随意改变div属性style的名称和值的结果
2013/09/26 Javascript
了解Javascript的模块化开发
2015/03/02 Javascript
简单纯js实现点击切换TAB标签实例
2015/08/23 Javascript
全面解析Bootstrap图片轮播效果
2015/12/03 Javascript
JSON与String互转的实现方法(Javascript)
2016/09/27 Javascript
微信小程序开发教程-手势解锁实例
2017/01/06 Javascript
JavaScript函数表达式详解及实例
2017/05/05 Javascript
提高Node.js性能的应用技巧分享
2017/08/10 Javascript
在Python中操作文件之read()方法的使用教程
2015/05/24 Python
Python解析树及树的遍历
2016/02/03 Python
Python网络爬虫项目:内容提取器的定义
2016/10/25 Python
对python 各种删除文件失败的处理方式分享
2018/04/24 Python
Python用Try语句捕获异常的实例方法
2019/06/26 Python
详解python tkinter模块安装过程
2020/01/06 Python
基于梯度爆炸的解决方法:clip gradient
2020/02/04 Python
推荐8款常用的Python GUI图形界面开发框架
2020/02/23 Python
Python使用pickle进行序列化和反序列化的示例代码
2020/09/22 Python
Pycharm安装Qt Design快捷工具的详细教程
2020/11/18 Python
python模拟点击玩游戏的实例讲解
2020/11/26 Python
HTML里显示pdf、word、xls、ppt的方法示例
2020/04/14 HTML / CSS
Mixbook加拿大:照片书,照片卡,剪贴簿,年历和日历
2017/02/21 全球购物
飞利浦法国官网:Philips法国
2019/07/10 全球购物
Notino希腊:购买香水和美容产品
2019/07/25 全球购物
英国办公家具网站:Furniture At Work
2019/10/07 全球购物
环保倡议书400字
2014/05/15 职场文书
教师批评与自我批评总结
2014/10/16 职场文书
全国法院系统开展党的群众路线教育实践活动综述(全文)
2014/10/25 职场文书
大学生自我推荐信范文
2015/03/24 职场文书
新学期开学寄语2016
2015/12/04 职场文书
高中英语教学反思范文
2016/03/02 职场文书