PHP 截取字符串 mb_substr() 函数

前面我们了解了 substr() 函数,今天来看看 mbstring 扩展库的 mb_substr() 函数。

在 substr() 函数在截取中文时,可能出现 substr 中文乱码的错误,因为中文 UTF-8 编码,每个汉字占3字节,而 GB2312 占2字节,英文占1字节,截取位数不准确, substr() 函数硬生生地将一个中文字符“锯”成两半,所以出现了 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("ZHUEi's 收集窝",0,7,"utf-8");
?>

如果未指定最后一个编码参数,会是三个字节为一个中文,这是 utf-8 编码的特点,加上 utf-8 字符集说明后,是以一个字为单位来截取的。
需要注意编码,使用 mb_substr() 函数要和网页的编码要一致。

关于更多PHP的截取方法可以查看:PHP 截取(提取)字符串中所需内容使用不同函数的几种解决方法

如果你发现错误或有其他见解,请给 www.zhuei.cn 留言,我们会尽快更新本文!

发表评论

邮箱地址不会被公开。 必填项已用*标注