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和ACCESS写聊天室(三)
Oct 09 PHP
php中去除所有js,html,css代码
Oct 12 PHP
php 删除目录下N分钟前创建的所有文件的实现代码
Aug 10 PHP
zf框架的校验器使用使用示例(自定义校验器和校验器链)
Mar 13 PHP
PHP数组排序之sort、asort与ksort用法实例
Sep 08 PHP
PHP中COOKIES使用示例
Jul 26 PHP
PHP连接MYSQL数据库实例代码
Jan 20 PHP
Zend Framework分页类用法详解
Mar 22 PHP
php中static和const关键字用法分析
Dec 07 PHP
解决php 处理 form 表单提交多个 name 属性值相同的 input 标签问题
May 11 PHP
laravel 执行迁移回滚示例
Oct 23 PHP
PHP7 其他修改
Mar 09 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
php数组函数序列之array_splice() - 在数组任意位置插入元素
2011/11/07 PHP
PHP入门之常量简介和系统常量
2014/05/12 PHP
如何通过Linux命令行使用和运行PHP脚本
2015/07/29 PHP
php实现socket推送技术的示例
2017/12/20 PHP
PHP CURL中传递cookie的方法步骤
2019/05/09 PHP
php精度计算的问题解析
2019/06/21 PHP
PHP利用缓存处理用户注册时的邮箱验证,成功后用户数据存入数据库操作示例
2019/12/31 PHP
Javascript表达式中连续的 && 和 || 之赋值区别
2010/10/17 Javascript
jquery里的正则表达式说明
2011/08/03 Javascript
jquery实现顶部向右伸缩的导航区域代码
2015/09/02 Javascript
JavaScript数组操作详解
2017/02/04 Javascript
基于ES6作用域和解构赋值详解
2017/11/03 Javascript
原生js实现移动端触摸轮播的示例代码
2017/12/22 Javascript
详解layui弹窗父子窗口之间传参数的方法
2018/01/16 Javascript
Vue ElementUi同时校验多个表单(巧用new promise)
2018/06/06 Javascript
微信小程序实现之手势锁功能实例代码
2018/07/19 Javascript
vue favicon设置以及动态修改favicon的方法
2018/12/21 Javascript
在vue中实现禁止屏幕滚动,禁止屏幕滑动
2020/07/22 Javascript
[41:08]2014 DOTA2国际邀请赛中国区预选赛 HGT VS NE
2014/05/22 DOTA
使用Python编写一个模仿CPU工作的程序
2015/04/16 Python
Python生成8位随机字符串的方法分析
2017/12/05 Python
python查找指定文件夹下所有文件并按修改时间倒序排列的方法
2018/10/21 Python
python 动态生成变量名以及动态获取变量的变量名方法
2019/01/20 Python
在django中实现页面倒数几秒后自动跳转的例子
2019/08/16 Python
Python爬虫实现selenium处理iframe作用域问题
2021/01/27 Python
canvas 阴影和图形变换的示例代码
2018/01/02 HTML / CSS
详解canvas绘制网络字体几种方法
2019/08/27 HTML / CSS
Html+Css+Jquery实现左侧滑动拉伸导航菜单栏的示例代码
2020/03/17 HTML / CSS
详解HTML5常用的语义化标签
2019/09/27 HTML / CSS
健康监测猫砂:Pretty Litter
2017/05/25 全球购物
关于学习的演讲稿
2014/05/10 职场文书
法人授权委托书
2014/09/16 职场文书
销售经理工作失职检讨书
2014/10/24 职场文书
2014年财务部工作总结
2014/11/11 职场文书
Python中tkinter的用户登录管理的实现
2021/04/22 Python
python lambda 表达式形式分析
2022/04/03 Python