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 相关文章推荐
数据库相关问题
Oct 09 PHP
利用文件属性结合Session实现在线人数统计
Oct 09 PHP
PHP新手上路(四)
Oct 09 PHP
用PHP伪造referer突破网盘禁止外连的代码
Jun 15 PHP
PHP自动选择 连接本地还是远程数据库
Dec 02 PHP
探讨PHP中OO之静态关键字以及类常量的详解
Jun 07 PHP
PHP array_multisort() 函数的深入解析
Jun 20 PHP
php中实现记住密码下次自动登录的例子
Nov 06 PHP
PHP解析目录路径的3个函数总结
Nov 18 PHP
Linux下编译redis和phpredis的方法
Apr 07 PHP
thinkphp框架实现数据添加和显示功能
Jun 29 PHP
PHP简单读取PDF页数的实现方法
Jul 21 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
用Flash图形化数据(二)
2006/10/09 PHP
PHP实现可添加水印与生成缩略图的图片处理工具类
2018/01/16 PHP
自制轻量级仿jQuery.boxy对话框插件代码
2010/10/26 Javascript
分享27个jQuery 表单插件集合推荐
2011/04/25 Javascript
有关JavaScript的10个怪癖和秘密分享
2011/08/28 Javascript
getElementByIdx_x js自定义getElementById函数
2012/01/24 Javascript
jQuery实现统计输入文字个数的方法
2015/03/11 Javascript
js获取form的方法
2015/05/06 Javascript
JavaScript仿flash遮罩动画效果
2016/06/15 Javascript
JS常用倒计时代码实例总结
2017/02/07 Javascript
分析JavaScript数组操作难点
2017/12/18 Javascript
Vue二次封装axios为插件使用详解
2018/05/21 Javascript
详解Require.js与Sea.js的区别
2018/08/05 Javascript
AngularJS与后端php的数据交互方法
2018/08/13 Javascript
小试小程序云开发(小结)
2019/06/06 Javascript
从零开始用webpack构建一个vue3.0项目工程的实现
2020/09/24 Javascript
python实现机器学习之多元线性回归
2018/09/06 Python
对python3新增的byte类型详解
2018/12/04 Python
在Python中字典根据多项规则排序的方法
2019/01/21 Python
查看python安装路径及pip安装的包列表及路径
2019/04/03 Python
python中metaclass原理与用法详解
2019/06/25 Python
更新pip3与pyttsx3文字语音转换的实现方法
2019/08/08 Python
Scrapy 配置动态代理IP的实现
2020/09/28 Python
CSS3 animation ? steps 函数详解
2019/08/30 HTML / CSS
Lentiamo荷兰:在线订购隐形眼镜、隐形眼镜液和太阳镜
2019/10/25 全球购物
俄罗斯第一家多品牌在线奢侈品精品店:Aizel.ru
2020/09/06 全球购物
.net软件工程师面试题
2015/03/31 面试题
生物技术毕业生自荐信
2013/10/23 职场文书
教师演讲稿范文
2014/01/08 职场文书
高三上学期学习自我评价
2014/04/23 职场文书
乡镇保密工作责任书
2014/07/28 职场文书
上课说话检讨书500字
2014/11/01 职场文书
演讲开场白台词大全
2015/05/29 职场文书
Nginx的rewrite模块详解
2021/03/31 Servers
html+css实现分层金字塔的实例
2021/06/02 HTML / CSS
vue使用wavesurfer.js解决音频可视化播放问题
2022/04/04 Vue.js