学习php过程中遇到一个substr函数,但是截取中文时一直乱码,刚开始以为是数据库编码输出问题,后来百度下发现了解决方案,就是mb_substr函数,要想使用这个函数,还需要做一点准备工作,具体步骤如下:
- 检查你的Windows/system32下是否有php_mbstring.dll这个文件,没有的话就差那个PHP安装目录中extensions文件夹复制到Windows/system32文件夹中。
- 打开PHP配置文件
php.ini
,搜索mbstring.dll
,找到;extension=php_mbstring.dll
,去掉前面的;分号,这样mb_substr
函数就可以使用了。mb_strcut
函数功能也可以截取字符串长度,下面就给大家演示下具体区别:
<pre class="line-numbers prism-highlight" data-start="1"><code class="language-php"><?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
是按字节来切分字符,但是都不会产生半个字符的现象。
测试成功~~终于找到解决办法了