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的substr_replace将指定两位置之间的字符替换为*号
May 04 PHP
php 面试碰到过的问题 在此做下记录
Jun 09 PHP
一个PHP并发访问实例代码
Sep 06 PHP
php读取二进制流(C语言结构体struct数据文件)的深入解析
Jun 13 PHP
PHP四大安全策略
Mar 12 PHP
PHP结合jQuery实现找回密码
Jul 22 PHP
PHP 使用 Imagick 裁切/生成缩略图/添加水印自动检测和处理 GIF
Feb 19 PHP
php array_slice 取出数组中的一段序列实例
Nov 04 PHP
php安全配置记录和常见错误梳理(总结)
Mar 28 PHP
PHP基于XMLWriter操作xml的方法分析
Jul 17 PHP
PHP长连接实现与使用方法详解
Feb 11 PHP
php 比较获取两个数组相同和不同元素的例子(交集和差集)
Oct 18 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合并js请求的例子
2013/11/01 PHP
PHP大文件分割上传 PHP分片上传
2017/08/28 PHP
js操作iframe的一些方法介绍
2013/06/25 Javascript
jQuery 获取兄弟元素的几种不错方法
2014/05/23 Javascript
node.js Web应用框架Express入门指南
2014/05/28 Javascript
js实现发送验证码后的倒计时功能
2015/05/28 Javascript
JQuery菜单效果的两个实例讲解(3)
2015/09/17 Javascript
详解JavaScript基于面向对象之继承实例
2015/12/16 Javascript
Nodejs express框架一个工程中同时使用ejs模版和jade模版
2015/12/28 NodeJs
利用bootstrapValidator验证UEditor
2016/09/14 Javascript
Bootstrap基本组件学习笔记之下拉菜单(7)
2016/12/07 Javascript
React Router基础使用
2017/01/17 Javascript
node.js实现登录注册页面
2017/04/08 Javascript
微信小程序实现表单校验功能
2020/03/30 Javascript
收集前端面试题之url、href、src
2018/03/22 Javascript
8个有意思的JavaScript面试题
2019/07/30 Javascript
关于layui 下拉列表的change事件详解
2019/09/20 Javascript
jquery实现垂直手风琴导航栏
2020/02/18 jQuery
详解JavaScript的this指向和绑定
2020/09/08 Javascript
详解Vue数据驱动原理
2020/11/17 Javascript
python中print的不换行即时输出的快速解决方法
2016/07/20 Python
Python3.6简单反射操作示例
2018/06/14 Python
使用python实现快速搭建简易的FTP服务器
2018/09/12 Python
深入了解Python在HDA中的应用
2019/09/05 Python
如何在VSCode上轻松舒适的配置Python的方法步骤
2019/10/28 Python
python飞机大战pygame游戏之敌机出场实现方法详解
2019/12/17 Python
AUC计算方法与Python实现代码
2020/02/28 Python
Python基于爬虫实现全网搜索并下载音乐
2021/02/14 Python
深入浅析HTML5中的SVG
2015/11/27 HTML / CSS
美国在线宠物用品商店:Entirely Pets
2017/01/01 全球购物
YSL圣罗兰美妆英国官网:Yves Saint Laurent Beauty UK
2019/08/03 全球购物
美国最大的在线生存商店:Survival Frog
2020/12/13 全球购物
副总经理工作职责
2013/11/28 职场文书
电脑饰品店的创业计划书
2014/01/21 职场文书
如何拟写通知正文?
2019/04/02 职场文书
python基础入门之字典和集合
2021/06/13 Python