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

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

substr()函数

substr(string,start,length)

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

  1. <?php  
  2. $siteurl = 'www.phpfensi.com'
  3. print_r (substr($siteurl,4));exit
  4. //则返回:  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是按字节来切分字符,但是都不会产生半个字符的现象……代码如下:

  1. <?php 
  2. echo mb_substr('飞花院博客feihuayuan',0,9); 
  3. //返回: 飞花院 
  4. echo mb_substr('飞花院博客feihuayuan',0,9,'utf-8'); 
  5. //则返回: 飞花院博客feih 
  6. mb_strcut('飞花院博客feihuayuan',0,9,'utf-8'); 
  7. 则返回:飞花院 
  8. ?> 

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

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

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

波比源码 – 精品源码模版分享 | www.bobi11.com
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 本站源码并不保证全部能正常使用,仅供有技术基础的人学习研究,请谨慎下载
8. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!

波比源码 » substr(),mb_substr()及mb_strcut函数用法与区别

1 评论

发表评论

Hi, 如果你对这款模板有疑问,可以跟我联系哦!

联系站长
赞助VIP 享更多特权,建议使用 QQ 登录
喜欢我嘛?喜欢就按“ctrl+D”收藏我吧!♡