更新时间:2016年11月15日 09:15:33 作者:陈大辉
本文主要介绍thinkPHP的外部字符串截取函数的使用方法,并结合实例分析thinkPHP的外部字符串截取函数的功能和具体使用方法,以及难点添加省略号的源码修改方法。 有需要的同学可以参考以下
本文通过示例介绍thinkPHP的外部字符串截取功能的使用。 分享给大家,供大家参考,如下:
thinkphp有一个可以匹配smarty的外部模板引擎,给我们带来了很大的方便。 调用函数也是一样,你可以像smarty一样调用你需要的函数,官方也有一些常用的函数供你调用。
比如我们明天讲的字符串截取函数,在thinkphp模板引擎中可以这样写: {$vo.title|msubstr=0,5,'utf-8',false}至于{$vo.title} ,你一定不陌生。 我们先来说一下上面的msubstr这个函数。 意思是截取字符串$vo.title,从0个字符开始php截取指定字符串,截取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功能好像无论如何都无法添加省略号,我在官网峰会上找到了修改的方法php截取指定字符串,经过测试可以正常使用~!
将 Commonextend.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相关内容感兴趣的读者可以查看本站专题:《ThinkPHP入门教程》、《ThinkPHP模板操作方法总结》、《ThinkPHP常用方法总结》、《Smarty模板教程基本介绍》 》和《PHP模板技术总结》。
希望本文对您基于ThinkPHP框架进行PHP编程有所帮助。