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版(2)
Oct 09 PHP
一贴学会PHP 新手入门教程
Aug 03 PHP
数组与类使用PHP的可变变量名需要的注意的问题
Jun 20 PHP
解析php获取字符串的编码格式的方法(函数)
Jun 21 PHP
PHP读取文件内容后清空文件示例代码
Mar 18 PHP
php数据库备份还原类分享
Mar 20 PHP
ThinkPHP3.1的Widget新用法
Jun 19 PHP
php格式化金额函数分享
Feb 02 PHP
Symfony实现行为和模板中取得request参数的方法
Mar 17 PHP
PHP 表单提交及处理表单数据详解及实例
Dec 27 PHP
PHP编程快速实现数组去重的方法详解
Jul 22 PHP
WordPress伪静态规则设置代码实例
Dec 10 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
escape unescape的php下的实现方法
2007/04/27 PHP
php 设计模式之 单例模式
2008/12/19 PHP
PHP会话控制:Session与Cookie详解
2014/09/27 PHP
php提交表单发送邮件的方法
2015/03/20 PHP
php和vue配合使用技巧和方法
2019/05/09 PHP
gridpanel动态加载数据的实例代码
2013/07/18 Javascript
对new functionName()定义一个函数的理解
2014/05/22 Javascript
基于打包工具Webpack进行项目开发实例
2018/05/29 Javascript
JavaScript实现浅拷贝与深拷贝的方法分析
2018/07/05 Javascript
深入Node TCP模块的理解
2019/03/13 Javascript
[44:41]Fnatic vs Liquid 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python urlopen()函数 示例分享
2014/06/12 Python
python 遍历列表提取下标和值的实例
2018/12/25 Python
Python猜数字算法题详解
2020/03/01 Python
pyCharm 设置调试输出窗口中文显示方式(字符码转换)
2020/06/09 Python
Python生成器传参数及返回值原理解析
2020/07/22 Python
python线程池 ThreadPoolExecutor 的用法示例
2020/10/10 Python
支持IE8的纯css3开发的响应式设计动画菜单教程
2014/11/05 HTML / CSS
英国豪华针织品牌John Smedley的在线销售商:The Outlet by John Smedley
2018/04/08 全球购物
Boden澳大利亚官网:英国在线服装公司
2018/08/05 全球购物
英文求职信写作小建议
2014/02/16 职场文书
作文评语集锦大全
2014/04/23 职场文书
给校长的建议书300字
2014/05/16 职场文书
法定代表人身份证明书
2014/09/10 职场文书
公司离职证明范本(5篇)
2014/09/17 职场文书
个人存款证明书
2014/10/18 职场文书
2015商场元旦促销活动策划方案
2014/12/09 职场文书
个园导游词
2015/02/04 职场文书
员工家属慰问信
2015/03/24 职场文书
拖欠货款起诉状
2015/05/20 职场文书
2016春季运动会前导词
2015/11/25 职场文书
会计入职心得体会
2016/01/22 职场文书
导游词之日月潭
2019/11/05 职场文书
解决Nginx 配置 proxy_pass 后 返回404问题
2021/03/31 Servers
vue 数字翻牌器动态加载数据
2022/04/20 Vue.js
服务器间如何实现文件共享
2022/05/20 Servers