帝国CMS模板大全
www.admin99.cn
www.92cms.cn 帝国CMS模板下载站!,情怀,养站,二次开发!源码需求比较大的一站式会员下载,价更省!!!

substr(),mb_substr()及mb_strcut函数用法与区别 - php函数

substr(),mb_substr()及mb_strcut函数用法与区别

在php中substr(),mb_substr()及mb_strcut三个函数都是字符截取函数,但是substr截取中文时会有乱码,而后两者支持中文截取,下面我来介绍介绍。

substr()函数

substr(string,start,length)

string表示要截取的对象,start表示从哪个位置开始截取,0表示从头开始,正数表示从这个数的位置后面截取,负数表示从结尾算开始截取的位置,但依然是从左到右截,length表示截取长度.负数表示排除或忽略结尾多少个字符.代码如下:

<?php  
$siteurl  =  'www.phpfensi.com' ; 
print_r ( substr ( $siteurl ,4)); exit ; 
//则返回:  phpfensi.com表示从头第4个字符开始,返回后面的所有字符.  

实例代码如下:

$siteurl = 'www.phpfensi.com';print_r (substr($siteurl,-6,2));exit;

如果要截取双字节的汉字.则要用PHP mb_substr函数或mb_strcut函数,但这两个函数依赖php扩展php_mbstring.dll组件,所以要配置你的服务器.即把php安装目录中的php_mbstring.dll文件复制到你的windows 2003 的c盘的Windows/system32目录中.

举个例子:

echo mb_substr('这样一来我的字符串就不会有乱码^_^', 0, 7, 'utf-8');

输出:这样一来我的字,代码如下

echo mb_strcut('这样一来我的字符串就不会有乱码^_^', 0, 7, 'utf-8');

输出:这样一

从上面的例子可以看出,mb_substr是按字来切分字符,而mb_strcut是按字节来切分字符,但是都不会产生半个字符的现象……代码如下:

<?php 
echo  mb_substr( '飞花院博客feihuayuan' ,0,9); 
//返回: 飞花院  
echo  mb_substr( '飞花院博客feihuayuan' ,0,9, 'utf-8' ); 
//则返回: 飞花院博客feih  
mb_strcut( '飞花院博客feihuayuan' ,0,9, 'utf-8' ); 
则返回:飞花院 
?> 

再举个例子,有一段文字,分别用mb_substr和mb_strcut来做切分,代码如下:

<?php 
$str  =  '我是一串比较长的中文-' ; 
echo   "mb_substr:"  . mb_substr( $str , 0, 6,  'utf-8' ); 
echo   "<br>" ; 
echo   "mb_strcut:"  . mb_strcut( $str , 0, 6,  'utf-8' ); 
?> 
/*输出结果如下:  
mb_substr:我是一串比较  
mb_strcut:我是  
*/  

本文章总结:从上面实例可以看得出来,substr只支持单字节的,这样只适合英文截取,而mb_substr函数是双字体截取了,正好可用于中文了,而mb_strcut是三字节了。

赞(0)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《substr(),mb_substr()及mb_strcut函数用法与区别 - php函数》
文章链接:https://www.admin99.cn/8193
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
QQ站长交流群:953950264

登录

找回密码

注册