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 相关文章推荐
别人整理的服务器变量:$_SERVER
Oct 20 PHP
深思 PHP 数组遍历的差异(array_diff 的实现)
Mar 23 PHP
PHP 5.0对象模型深度探索之类的静态成员
Mar 27 PHP
php 用checkbox一次性删除多条记录的方法
Feb 23 PHP
PHP操作数组相关函数
Feb 03 PHP
sphinx增量索引的一个问题
Jun 14 PHP
支持中文的php加密解密类代码
Nov 27 PHP
初步介绍PHP扩展开发经验分享
Sep 06 PHP
php实现简单的上传进度条
Nov 17 PHP
php实现的SSO单点登录系统接入功能示例分析
Oct 12 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
Feb 11 PHP
php封装的pdo数据库操作工具类与用法示例
May 08 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计划任务之ignore_user_abort函数实现方法
2015/01/08 PHP
Opcache导致php-fpm崩溃nginx返回502
2015/03/02 PHP
利用php实现一周之内自动登录存储机制(cookie、session、localStorage)
2016/10/31 PHP
提高代码性能技巧谈—以创建千行表格为例
2006/07/01 Javascript
JQuery 确定css方框模型(盒模型Box Model)
2010/01/22 Javascript
高性能WEB开发 flush让页面分块,逐步呈现 flush让页面分块,逐步呈现
2010/06/19 Javascript
jQuery中调用WebService方法小结
2011/03/28 Javascript
做好七件事帮你提升jQuery的性能
2014/02/06 Javascript
JavaScript实现更改网页背景与字体颜色的方法
2015/02/02 Javascript
js实现时间显示几天前、几小时前或者几分钟前的方法集锦
2015/05/29 Javascript
Angularjs过滤器使用详解
2016/05/25 Javascript
AngularJS动态加载模块和依赖的方法分析
2016/11/08 Javascript
JavaScript中浅讲ajax图文详解
2016/11/11 Javascript
Node.js 的模块知识汇总
2017/08/16 Javascript
vue服务端渲染的实例代码
2017/08/28 Javascript
koa2+vue实现登陆及登录状态判断
2019/08/15 Javascript
微信小程序用户盒子、宫格列表的实现
2020/07/01 Javascript
jQuery带控制按钮轮播图插件
2020/07/31 jQuery
[01:02:06]LGD vs Mineski Supermajor 胜者组 BO3 第二场 6.5
2018/06/06 DOTA
Python中time模块与datetime模块在使用中的不同之处
2015/11/24 Python
python访问mysql数据库的实现方法(2则示例)
2016/01/06 Python
PyQt5重写QComboBox的鼠标点击事件方法
2019/06/25 Python
Python性能分析工具Profile使用实例
2019/11/19 Python
详解CSS3实现响应式手风琴效果
2020/06/10 HTML / CSS
Crocs卡骆驰洞洞鞋日本官方网站:Crocs日本
2016/08/25 全球购物
印度尼西亚手表和包包商店:Urban Icon
2019/12/12 全球购物
物业管理工作方案
2014/05/10 职场文书
英语专业自荐书
2014/06/13 职场文书
党员目标管理责任书
2014/07/25 职场文书
2014年市场部工作总结
2014/11/25 职场文书
经济纠纷起诉状
2015/05/20 职场文书
感谢信的技巧及范例
2019/05/15 职场文书
25句企业管理语录:助你迅速打开思路,句句经典!
2020/01/14 职场文书
python实现三阶魔方还原的示例代码
2021/04/28 Python
关于使用Redisson订阅数问题
2022/01/18 Redis
Spring Boot项目传参校验的最佳实践指南
2022/04/05 Java/Android