Thinkphp模板中截取字元串函数
2015-07-15 11:48
597 查看
对于英文字元可使用如下形式:
如果是中文字元thinkphp提供了msubstr,用法如下:
$str:要截取的字符串
$start=0:开始位置,默认从0开始
$length:截取长度
$charset=”utf-8″:字符编码,默认UTF-8
$suffix=true:是否在截取后的字符后面显示省略号,默认true显示,false为不显示
注:如果不能正常调用,那说明你没有加载函数库,可以使用 Load('extend');来加载函数,把它放到action中就可以啦~!
如果还是不好用,可在common.php文件中写如下代码:
{$vo.title|substr=0,5}
如果是中文字元thinkphp提供了msubstr,用法如下:
function msubstr($str, $start=0, $length, $charset=」utf-8″, $suffix=true)//使用如下 {$vo.title|msubstr=5,5,'utf-8′,true}
$str:要截取的字符串
$start=0:开始位置,默认从0开始
$length:截取长度
$charset=”utf-8″:字符编码,默认UTF-8
$suffix=true:是否在截取后的字符后面显示省略号,默认true显示,false为不显示
注:如果不能正常调用,那说明你没有加载函数库,可以使用 Load('extend');来加载函数,把它放到action中就可以啦~!
注:扩展函数库的方法不能直接使用,需要加载或者拷贝到项目函数库中才能使用。
加载扩展函数库,使用:
Load('extend');
加载扩展函数库后,就可以调用其中的所有函数了。
function index(){
Load('extend'); //这里 here!
if($_POST['password']!=$_POST['repassword']){
$this->error('两次密码不一致');
$user=D('user');
if($vo=$user->create()){
......
}
如果还是不好用,可在common.php文件中写如下代码:[php] view plaincopyprint? /** +---------------------------------------------------------- * 字符串截取,支持中文和其他编码 +---------------------------------------------------------- * @static * @access public +---------------------------------------------------------- * @param string $str 需要转换的字符串 * @param string $start 开始位置 * @param string $length 截取长度 * @param string $charset 编码格式 * @param string $suffix 截断显示字符 +---------------------------------------------------------- * @return string +---------------------------------------------------------- */ 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; }
相关文章推荐
- PHP表单验证
- yii后台模板标签
- PHP实现对png图像进行缩放的方法(支持透明背景)
- [php] 实现倒计时
- THINKPHP中D方法调用逻辑层类
- 005.Output 格式符
- yii中获取当前模块,控制器,方法
- 百度PUSH PHP服务器端
- [php] 前后端URL编解码
- PHP5.5中新增foreach() 循环支持标量迭代键-foreach+list和array_column用法
- tp框架中表单数据的接收
- PECL源码编译安装
- PHP取中间文本
- PHP 判断是否包含某字符串
- 2015 PHP框架调查结果出炉,Laravel最受欢迎!
- ci(codeigniter)php框架再探-页面访问流程
- 终端执行php报错:PHP Deprecated: Comments starting with '#' are deprecated in /etc/php5/cli/conf.d/ming.ini on line 1 in Unknown on line 0
- php设计模式之迭代器模式
- PHP设计模式之:单例模式
- 关于php中携带的php-fpm和php-cgi的理解纠正