本文阐述了字符截取功能msubstr使用()在ThinkPHP。分享给你供你参考,如下:

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

msubstr($str = 0美元开始,美元,美元的长度,字符集=UTF-8

要被截获的字符串:

$开始= 0:开始位置,默认为0

长度:截取长度

$字符集=UTF-8:默认的字符编码,UTF8

后缀= true:是否在截取字符后显示后面的省略号,默认的真显示,假显示

拨打以下

The copy code is as follows: {$vo.title|msubstr=5,5,'utf-8', false}

说明:字符串vo.title美元,从第五个字符开始截取,5,编码为UTF8,不显示省略号

我最近遇到一个错误一样调用未定义的函数msubstr()时写的一个程序用ThinkPHP,

原因分析:

对msubstr | msubstr = # # #,5,5,'utf-8功能,和假用于前台拦截的字符数;

出现问题:

当在本地写入时,Windows操作系统没有报告任何错误。后来,当上传项目到Linux服务器,访问前台调用未定义的函数msubstr()。

这个问题被排除在外:

在官方官员的开始,有人看到合作伙伴被张贴到公共功能库下定义这个功能;功能如下:


功能msubstr($str = 0美元开始,美元,美元的长度,字符集=UTF-8
如果(function_exists(mb_substr )){
如果(后缀)
返回mb_substr($str,美元美元美元开始,长度,字符集)。……;
其他的
返回mb_substr($str,美元美元美元开始,长度,字符集);
} elseif(function_exists('iconv_substr ')){
如果(后缀)
返回iconv_substr($str,美元美元美元开始,长度,字符集)。……;
其他的
返回iconv_substr($str,美元美元美元开始,长度,字符集);
}
再'utf-8} = { $ / { x01-x7f } { } { | XC2 XDF X80 XBF } { } { | xe0 XeF X80 XBF } { 2 } { } { | xf0 xff X80 XBF } { 3 } / ;
再'gb2312} = { $ / { } { } { x01-x7f | xb0-xf7 xA0 xFe } / ;
再'gbk} = { $ / { x01-x7f } { } { | X81后部接口xFe X40 xFe } / ;
再'big5} = { $ / { } { } x01-x7f | X81后部接口xFe({ } | x40-x7e Xa1 xFe }) / ;
preg_match_all(美元重新{ $字符集},$str,$匹配);
美元=连接(
如果($后缀)返回$片。……;
返回$片;
}




你定义的本地可用后;看到朋友说要把这个功能在ThinkPHP内核文件可以解决调用未定义的函数(msubstr)错误的问题,对自己的项目公共目录下的common.php无效下,但不想升级的认为文件以促进未来变化的核心;

解决方案:

或公司文件大小写,我仔细检查后发现,由于项目不会自动生成common.php手工打造,我在当地的项目在普通common.php写大写字母,然后查看官方共同common.php核心下是用c写的。最后,他改变了他一小案例。

保持记录,避免再犯这么低的错误!

更感兴趣的朋友可以看看ThinkPHP相关内容的网站:ThinkPHP入门教程和总结常用方法在ThinkPHP

希望本文有助于基于ThinkPHP框架的PHP程序设计人。