ThinkPHP 模板substr的截取字符串函数详解


Posted in PHP onJanuary 09, 2017

ThinkPHP 模板substr的截取字符串函数

在Common/function.php加上以下代码

/**
** 截取中文字符串
**/
function msubstr($str, $start=0, $length, $charset="utf-8", $suffix=true){
 if(function_exists("mb_substr")){
 $slice= mb_substr($str, $start, $length, $charset);
 }elseif(function_exists('iconv_substr')) {
 $slice= iconv_substr($str,$start,$length,$charset);
 }else{
 $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));
 } 
 $fix='';
 if(strlen($slice) < strlen($str)){
  $fix='...';
 }
 return $suffix ? $slice.$fix : $slice;
}

前端页面需要截取字符串时

{$v.title|msubstr=0,5}

/****************************案例****************************/

//新闻列表
 public function NewsList(){
 $this->assign('title','news');
 $p = I('page',1);
 $listRows = 10;
 $News = M('news');
 $info = $News->field('id,title,subtitle,publish_date,img,content')->where(array('type'=>'news','status'=>'1'))->order('flag desc,sort_no desc')->page($p,$listRows)->select();
 $this->assign('news',$info);
 $count = $News->where(array('type'=>'news','status'=>'1'))->count();
 $Page = new Page($count,$listRows);
 $show = $Page->show();
 $this->assign('page',$show);
 //var_dump($info);
 $this->display();
 }

ThinkPHP 模板substr的截取字符串函数详解

ThinkPHP 模板substr的截取字符串函数详解

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
vBulletin Forum 2.3.xx SQL Injection
Oct 09 PHP
php中对xml读取的相关函数的介绍一
Jun 05 PHP
ubuntu 编译安装php 5.3.3+memcache的方法
Aug 05 PHP
fetchAll()与mysql_fetch_array()的区别详解
Jun 05 PHP
PHPMailer的主要功能特点和简单使用说明
Feb 17 PHP
PHP使用flock实现文件加锁的方法
Jul 01 PHP
php去掉文件前几行的方法
Jul 29 PHP
PHP 7.0.2 正式版发布
Jan 08 PHP
Joomla简单判断用户是否登录的方法
May 04 PHP
php中__toString()方法用法示例
Dec 07 PHP
php中照片旋转 (orientation) 问题的正确处理
Feb 16 PHP
PHP编程实现阳历转换为阴历的方法实例
Aug 08 PHP
php 访问oracle 存储过程实例详解
Jan 08 #PHP
微信开发之php表单微信中自动提交两次问题解决办法
Jan 08 #PHP
yii2-GridView在开发中常用的功能及技巧总结
Jan 07 #PHP
yii2实现分页,带搜索的分页功能示例
Jan 07 #PHP
Yii框架用户登录session丢失问题解决方法
Jan 07 #PHP
Yii框架表单提交验证功能分析
Jan 07 #PHP
Yii框架弹出框功能示例
Jan 07 #PHP
You might like
Laravel框架数据库CURD操作、连贯操作总结
2014/09/03 PHP
php集成环境xampp中apache无法启动问题解决方案
2014/11/18 PHP
Zend Framework教程之Application和Bootstrap用法详解
2016/03/10 PHP
浅析Laravel5中队列的配置及使用
2016/08/04 PHP
解决php-fpm.service not found问题的办法
2017/06/06 PHP
laravel中数据显示方法(默认值和下拉option默认选中)
2019/10/11 PHP
windows系统php环境安装swoole具体步骤
2021/03/04 PHP
按给定几率进行随机抽取的js代码
2010/12/28 Javascript
Javascript学习笔记-详解in运算符
2011/09/13 Javascript
Javascript类定义语法,私有成员、受保护成员、静态成员等介绍
2011/12/08 Javascript
JavaScript高级程序设计 阅读笔记(二十) js错误处理
2012/08/14 Javascript
根据json字符串生成Html的一种方式
2013/01/09 Javascript
鼠标经过显示二级菜单js特效
2013/08/13 Javascript
代码触发js事件(click、change)示例应用
2013/12/13 Javascript
JavaScript判断微信浏览器实例代码
2016/06/13 Javascript
JavaScript调试之console.log调试的一个小技巧分享
2017/08/07 Javascript
JS模拟超市简易收银台小程序代码解析
2017/08/18 Javascript
JS自定义函数实现时间戳转换成date的方法示例
2017/08/27 Javascript
Vue中使用canvas方法总结
2019/02/12 Javascript
JS/jQuery实现获取时间的方法及常用类完整示例
2019/03/07 jQuery
Vue2.X和Vue3.0数据响应原理变化的区别
2019/11/07 Javascript
JS中的变量作用域(console版)
2020/07/18 Javascript
js+css实现扇形导航效果
2020/08/18 Javascript
python创建和使用字典实例详解
2013/11/01 Python
python学习之第三方包安装方法(两种方法)
2015/07/30 Python
Python同步遍历多个列表的示例
2019/02/19 Python
Python 旋转打印各种矩形的方法
2019/07/09 Python
Python-copy()与deepcopy()区别详解
2019/07/12 Python
美国益智玩具购物网站:Fat Brain Toys
2017/11/03 全球购物
学校联谊协议书
2014/09/16 职场文书
财政局党的群众路线教育实践活动剖析材料
2014/10/13 职场文书
群众路线自我剖析范文
2014/11/04 职场文书
销售经理岗位职责
2015/01/31 职场文书
幼儿园教师教育随笔
2015/08/14 职场文书
大学自主招生自荐信(2016精选篇)
2016/01/28 职场文书
Python学习之迭代器详解
2022/04/01 Python