浅析PHP substr,mb_substr以及mb_strcut的区别和用法

 更新时间:2013年06月21日 18:09:45   作者:  
本篇文章是对PHP中的substr,mb_substr以及mb_strcut区别和用法进行了详细的分析介绍,需要的朋友参考下
PHP substr()函数可以 分割文字,但要分割的文字如果包括中文字符往往会遇到问题,这时可以用mb_substr()/mb_strcut这个函数,mb_substr() /mb_strcut的用法与substr()相似,只是在mb_substr()/mb_strcut最后要加入多一个参数,以设定字符串的编码,但是 一般的服务器都没打开php_mbstring.dll,需要在php.ini在把php_mbstring.dll打开。
举个例子:
复制代码 代码如下:

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

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

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

输出:这样一
从上面的例子可以看出,mb_substr是按字来切分字符,而mb_strcut是按字节来切分字符,但是都不会产生半个字符的现象……
mbstring 函数的说明:
php的mbstring扩展模块提供了多字节字符的处理能力,平常最常用的就是用mbstring来切分多字节的中文字符,这样可以避免出现半个字符的情况,由于是php的扩展,它的性能也要比一些自定义的多字节切分函数要好上一些。
mbstring extension提供了几个功能类似的函数,mb_substr和mb_strcut,看看手册上对它们的解释。
复制代码 代码如下:

mb_substr
mb_substr() returns the portion of str specified by the start and length parameters.
mb_substr() performs multi-byte safe substr() operation based on number of characters. Position is counted from the beginning of str. First character's position is 0. Second character position is 1, and so on.
mb_strcut
mb_strcut() returns the portion of str specified by the start and length parameters.
mb_strcut() performs equivalent operation as mb_substr() with different method. If start position is multi-byte character's second byte or larger, it starts from first byte of multi-byte character.
It subtracts string from str that is shorter than length AND character that is not part of multi-byte string or not being middle of shift sequence.

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

<?php
$str = '我是一串比较长的中文-www.webjx.com';
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:我是

相关文章

  • php简单统计中文个数的方法

    php简单统计中文个数的方法

    这篇文章主要介绍了php简单统计中文个数的方法,涉及strlen、mb_strlen及mb_strwidth等函数的使用方法与相关注意事项,需要的朋友可以参考下
    2016-09-09
  • php支持中文字符串分割的函数

    php支持中文字符串分割的函数

    本文给大家分享了2个php使用mb_xxx方法来实现中文字符分割的方法,其基本思路都差不多,有需要的小伙伴可以参考下。
    2015-05-05
  • 如何使用Zephir轻松构建PHP扩展

    如何使用Zephir轻松构建PHP扩展

    通过PHP扩展,我们可以在php代码中使用一些特定的方法(大部分的 php扩展都是用C写的)。本文将介绍如何使用Zephir轻松构建PHP扩展。
    2021-05-05
  • 继续收藏一些PHP常用函数

    继续收藏一些PHP常用函数

    方便以后制作php程序,直接拿来就可以用了,其实一些好的函数都在一些较成熟的cms系统中都有,例如dedecms,帝国cms,phpcms等,不论是gb2312的还是utf8格式的都有。
    2008-08-08
  • 优化PHP程序的方法小结

    优化PHP程序的方法小结

    优化PHP程序的方法小结,学习php的朋友可以参考下
    2012-02-02
  • PHP中检查isset()和!empty()函数的必要性

    PHP中检查isset()和!empty()函数的必要性

    在本篇文章里小编给大家总结的是关于PHP中同时检查isset()和!empty()函数的必要性原因,有需要的朋友们学习下。
    2019-02-02
  • PHP计算百度地图两个GPS坐标之间距离的方法

    PHP计算百度地图两个GPS坐标之间距离的方法

    这篇文章主要介绍了PHP计算百度地图两个GPS坐标之间距离的方法,是针对百度地图接口开发的典型应用,需要的朋友可以参考下
    2015-01-01
  • PHP实现的mysql操作类【MySQL与MySQLi方式】

    PHP实现的mysql操作类【MySQL与MySQLi方式】

    这篇文章主要介绍了PHP实现的mysql操作类,结合实例形式分析了MySQL与MySQLi方式连接与操作MySQL数据库的常用方法封装与使用技巧,需要的朋友可以参考下
    2017-10-10
  • php中获取主机名、协议及IP地址的方法

    php中获取主机名、协议及IP地址的方法

    这篇文章主要介绍了php中获取主机名、协议及IP地址的方法,其中涉及gethostbyaddr、gethostbynamel、getprotobyname、getprotobynumber等函数及$_SERVER变量的应用,需要的朋友可以参考下
    2014-11-11
  • php自定义urlencode,urldecode函数实例

    php自定义urlencode,urldecode函数实例

    这篇文章主要介绍了php自定义urlencode,urldecode函数,实例分析了php字符串转码的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03

最新评论