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 相关文章推荐
不重新编译PHP为php增加openssl模块的方法
Jun 14 PHP
PHP批量采集下载美女图片的实现代码
Jun 03 PHP
php小经验:解析preg_match与preg_match_all 函数
Jun 29 PHP
PHP 只允许指定IP访问(允许*号通配符过滤IP)
Jul 08 PHP
php中解析带中文字符的url函数分享
Jan 20 PHP
PHP浮点比较大小的方法
Feb 14 PHP
Yii2基于Ajax自动获取表单数据的方法
Aug 10 PHP
MAC下通过改apache配置文件切换php多版本的方法
Apr 26 PHP
浅析PHP7的多进程及实例源码
Apr 14 PHP
关于Laravel参数验证的一些疑与惑
Nov 19 PHP
PHP中关于php.ini参数优化详解
Feb 28 PHP
PHP 对接美团大众点评团购券(门票)的开发步骤
Apr 03 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
PHP中3种生成XML文件方法的速度效率比较
2012/10/06 PHP
WordPress中制作导航菜单的PHP核心方法讲解
2015/12/11 PHP
深入浅析用PHP实现MVC
2016/03/02 PHP
PHP截取发动短信内容的方法
2017/07/04 PHP
ext实现完整的登录代码
2008/08/08 Javascript
jquery加载页面的方法(页面加载完成就执行)
2011/06/21 Javascript
jquery通过a标签删除table中的一行的代码
2013/12/02 Javascript
Js实现无刷新删除内容
2015/04/29 Javascript
js图片跟随鼠标移动代码
2015/11/26 Javascript
JavaScript实现时间倒计时跳转(推荐)
2016/06/28 Javascript
基于javascript实现按圆形排列DIV元素(二)
2016/12/02 Javascript
jQuery上传多张图片带进度条样式(DEMO)
2017/03/02 Javascript
JS常见创建类的方法小结【工厂方式,构造器方式,原型方式,联合方式等】
2017/04/01 Javascript
react-router实现按需加载
2017/05/09 Javascript
JavaScript图片处理与合成总结
2018/03/04 Javascript
vue 实现左右拖拽元素并且不超过他的父元素的宽度
2018/11/30 Javascript
Vue数字输入框组件的使用方法
2019/10/19 Javascript
Nuxt默认模板、默认布局和自定义错误页面的实现
2020/05/11 Javascript
JavaScript oncopy事件用法实例解析
2020/05/13 Javascript
原生js+canvas实现下雪效果
2020/08/02 Javascript
[01:05]DOTA2完美大师赛趣味视频之选手教你打职业
2017/11/23 DOTA
python实现代理服务功能实例
2013/11/15 Python
详解Python多线程Selenium跨浏览器测试
2017/04/01 Python
用python标准库difflib比较两份文件的异同详解
2018/11/16 Python
python关于矩阵重复赋值覆盖问题的解决方法
2019/07/19 Python
python3 正则表达式基础廖雪峰
2020/03/25 Python
基于MUI框架使用HTML5实现的二维码扫描功能
2018/03/01 HTML / CSS
什么是虚拟内存?虚拟内存有什么优势?
2016/02/09 面试题
应用电子专业学生的自我评价
2013/10/16 职场文书
吸烟检讨书2000字
2014/02/13 职场文书
《太阳》教学反思
2014/02/21 职场文书
政治学专业毕业生求职信
2014/08/11 职场文书
政风行风整改报告
2014/11/06 职场文书
Python matplotlib多个子图绘制整合
2022/04/13 Python
i5-10400f处理相当于i7多少水平
2022/04/19 数码科技
Oracle中DBLink的详细介绍
2022/04/29 Oracle