thinkphp中字符截取函数msubstr()用法分析


Posted in PHP onJanuary 09, 2016

本文实例讲述了thinkphp中字符截取函数msubstr()用法。分享给大家供大家参考,具体如下:

ThinkPHP有一个内置字符截取函数msubstr()如下:

msubstr($str, $start=0, $length, $charset="utf-8", $suffix=true)

$str:要截取的字符串
$start=0:开始位置,默认从0开始
$length:截取长度
$charset="utf-8":字符编码,默认UTF-8
$suffix=true:是否在截取后的字符后面显示省略号,默认true显示,false为不显示

调用如下

{$vo.title|msubstr=5,5,'utf-8',false}

解释:截取字符串$vo.title,从第5个字符开始,截取5个,编码为UTF-8,不显示省略号

最近在用thinkphp写程序的时候遇到  Call to undefined function msubstr() 这样一个报错,

原因分析:

在前台模板中用到了msubstr|msubstr=###,5,5,'utf-8',false 这个函数来截取字符数量;

问题出现:

开始在本地写的时候是windows操作系统没报错,后来把项目上传到Linux服务器的时候访问前台报Call to undefined function msubstr()这个错;

问题排除:

开始在think官方看到有小伙伴们贴出来了要在公共函数库下定义这个函数;函数如下:

function msubstr($str, $start=0, $length, $charset="utf-8", $suffix=false){
 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核心函数文件下可以解决Call to undefined function msubstr()报错问题,放在自己的项目Common目录下的common.php下说无效,但是不想改动Think的核心文件方便 以后升级;

解决方案:

还是Linx下的文件大小写问题,经我仔细查看发现,由于项目不会自动生成common.php要手动建,原来我在本地项目下的Common下的common.php的C写成了大写,然后查看官方的核心Common下的common.php的C是小写。最后把他改成小写问题解决;

记录一下,避免以后再犯这种低级错误!

更多关于thinkPHP相关内容感兴趣的朋友可查看本站专题:《ThinkPHP入门教程》及《ThinkPHP常用方法总结》

希望本文所述对大家基于thinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
php cookies中删除的一般赋值方法
May 07 PHP
php自定义函数call_user_func和call_user_func_array详解
Jul 14 PHP
php中is_null,empty,isset,unset 的区别详细介绍
Apr 28 PHP
解析PHP多种序列化与反序列化的方法
Jun 06 PHP
解析PHP 使用curl提交json格式数据
Jun 29 PHP
php环境下利用session防止页面重复刷新的具体实现
Jan 09 PHP
php实现网站顶踩功能的完整前端代码
Jul 19 PHP
php写app接口并返回json数据的实例(分享)
May 20 PHP
PHP中递归的实现实例详解
Nov 14 PHP
PHP封装的page分页类定义与用法完整示例
Dec 24 PHP
php设计模式之享元模式分析【星际争霸游戏案例】
Mar 23 PHP
详解php中流行的rpc框架
May 29 PHP
Yii2框架引用bootstrap中日期插件yii2-date-picker的方法
Jan 09 #PHP
yii2框架中使用下拉菜单的自动搜索yii-widget-select2实例分析
Jan 09 #PHP
yii2中使用Active Record模式的方法
Jan 09 #PHP
YII2.0之Activeform表单组件用法实例
Jan 09 #PHP
yii2中添加验证码的实现方法
Jan 09 #PHP
PHP中的数组处理函数实例总结
Jan 09 #PHP
详解WordPress开发中用于获取分类及子页面的函数用法
Jan 08 #PHP
You might like
php5编程中的异常处理详细方法介绍
2008/07/29 PHP
PHP cron中的批处理
2008/09/16 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(四)
2014/06/23 PHP
ThinkPHP5.0框架结合Swoole开发实现WebSocket在线聊天案例详解
2019/04/02 PHP
网页开发中的容易忽略的问题 javascript HTML中的table
2009/04/15 Javascript
不到30行JS代码实现Excel表格的方法
2014/11/15 Javascript
JavaScript基本数据类型及值类型和引用类型
2015/08/25 Javascript
JS+CSS实现带有碰撞缓冲效果的竖向导航条代码
2015/09/15 Javascript
JavaScript过滤字符串中的中文与空格方法汇总
2016/03/07 Javascript
JS判断字符串变量是否含有某个字串的实现方法
2016/06/03 Javascript
使用ReactJS实现tab页切换、菜单栏切换、手风琴切换和进度条效果
2016/10/17 Javascript
微信小程序 图片等比例缩放(图片自适应屏幕)
2016/11/16 Javascript
JavaScript中无法通过div.style.left获取值的解决方法
2017/02/19 Javascript
JS中判断字符串存在和非空的方法
2018/09/12 Javascript
vue使用echarts图表自适应的几种解决方案
2020/12/04 Vue.js
[01:07:02]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD BO3 第三场 2月26日
2021/03/11 DOTA
python使用mysqldb连接数据库操作方法示例详解
2013/12/03 Python
python从sqlite读取并显示数据的方法
2015/05/08 Python
python保存字符串到文件的方法
2015/07/01 Python
Python处理菜单消息操作示例【基于win32ui模块】
2018/05/09 Python
python 重命名轴索引的方法
2018/11/10 Python
pygame游戏之旅 添加游戏界面按键图形
2018/11/20 Python
Python后台管理员管理前台会员信息的讲解
2019/01/28 Python
python算法与数据结构之冒泡排序实例详解
2019/06/22 Python
pandas计算最大连续间隔的方法
2019/07/04 Python
python 实现倒计时功能(gui界面)
2020/11/11 Python
Bowflex美国官方网站:高级家庭健身器材
2017/12/22 全球购物
Charles&Keith美国官方网站:新加坡快时尚鞋类和配饰零售商
2019/11/27 全球购物
招聘与培训专员岗位职责
2014/01/30 职场文书
优秀老员工获奖感言
2014/02/15 职场文书
艺术设计专业个人求职信
2014/04/10 职场文书
社区学习雷锋活动总结
2014/04/25 职场文书
寒暑假实习证明书模板
2014/11/29 职场文书
2015年党建工作汇报材料
2015/06/25 职场文书
观看《信仰》心得体会
2016/01/15 职场文书
python数据处理之Pandas类型转换
2022/04/28 Python