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 裁剪图片成固定大小代码方法
Sep 09 PHP
让PHP COOKIE立即生效,不用刷新就可以使用
Mar 09 PHP
写出高质量的PHP程序
Feb 04 PHP
利用PHP实现短域名互转
Jul 05 PHP
yii框架配置默认controller和action示例
Apr 30 PHP
深入理解PHP变量的值类型和引用类型
Oct 21 PHP
Yii2中YiiBase自动加载类、引用文件方法分析(autoload)
Jul 25 PHP
php7安装yar扩展的方法详解
Aug 03 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
Aug 31 PHP
Thinkphp3.2简单解决多文件上传只上传一张的问题
Sep 26 PHP
yii2 在控制器中验证请求参数的使用方法
Jun 19 PHP
php解决安全问题的方法实例
Sep 19 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
destoon实现调用自增数字从1开始的方法
2014/08/21 PHP
PHP has encountered a Stack overflow问题解决方法
2014/11/03 PHP
基于 Swoole 的微信扫码登录功能实现代码
2018/01/15 PHP
PHP调用微博接口实现微博登录的方法示例
2018/09/22 PHP
Gambit vs ForZe BO3 第二场 2.13
2021/03/10 DOTA
JavaScript 无符号右移运算符
2009/04/17 Javascript
JavaScript 实现模态对话框 源代码大全
2009/05/02 Javascript
给jqGrid数据行添加修改和删除操作链接(之一)
2011/11/04 Javascript
Js中获取frames中的元素示例代码
2013/07/30 Javascript
jQuery实现当按下回车键时绑定点击事件
2014/01/28 Javascript
JavaScript中的acos()方法使用详解
2015/06/14 Javascript
深入浅析JavaScript面向对象和原型函数
2016/02/06 Javascript
JavaScript中关联原型链属性特性
2016/02/13 Javascript
JavaScript 控制字体大小设置的方法
2016/11/23 Javascript
vue+vux实现移动端文件上传样式
2017/07/28 Javascript
Angular4实现鼠标悬停3d倾斜效果
2017/10/25 Javascript
node.js基于express使用websocket的方法
2017/11/09 Javascript
微信小程序登录数据解密及状态维持实例详解
2019/05/06 Javascript
Python中super函数的用法
2017/11/17 Python
对python的输出和输出格式详解
2018/12/08 Python
Python3爬虫学习之爬虫利器Beautiful Soup用法分析
2018/12/12 Python
python 定时器,轮询定时器的实例
2019/02/20 Python
Python基于滑动平均思想实现缺失数据填充的方法
2019/02/21 Python
详解Matplotlib绘图之属性设置
2019/08/23 Python
Tensorflow的常用矩阵生成方式
2020/01/04 Python
jupyter notebook实现显示行号
2020/04/13 Python
OpenCV图片漫画效果的实现示例
2020/08/18 Python
python 多线程死锁问题的解决方案
2020/08/25 Python
python如何实现word批量转HTML
2020/09/30 Python
欧洲品牌瓷器餐具网上商店:Porzellantreff.de
2018/04/04 全球购物
作文评语集锦大全
2014/04/23 职场文书
校本教研活动总结
2014/07/01 职场文书
房屋租赁协议书
2014/10/18 职场文书
事业单位考察材料范文
2014/12/25 职场文书
搬迁通知
2015/04/20 职场文书
PostgreSQL之连接失败的问题及解决
2023/05/08 PostgreSQL