利用mb_substr函数解决PHP截取汉字乱码的问题

学习php过程中遇到一个substr函数,但是截取中文时一直乱码,刚开始以为是数据库编码输出问题,后来百度下发现了解决方案,就是mb_substr函数,要想使用这个函数,还需要做一点准备工作,具体步骤如下:

1.检查你的Windows/system32下是否有php_mbstring.dll这个文件,没有的话就差那个PHP安装目录中extensions文件夹复制到Windows/system32文件夹中。

2.打开PHP配置文件php.ini,搜索mbstring.dll,找到 ;extension=php\_mbstring.dll,去掉前面的分号,这样mb_substr函数就可以使用了。 mb_strcut函数功能也可以截取字符串长度,下面就给大家演示下具体区别:

1
2
3
4
5
6
7
8
9
10
<?php
$str = '这样一来我的字符串就不会有乱码^_^';

echo "mb_substr:" . mb_substr($str, 0, 7, 'utf-8');
//结果:这样一来我的字
echo "<br>";

echo "mb_strcut:" . mb_strcut($str, 0, 6, 'utf-8');
//结果:这样
?>

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

php