最新消息:把Logo换了一下,虽然丑了点,但至少完全是自己的设计

Call to undefined function mb_strlen() 的解决方法

PHP 宇托 4906浏览 暂无评论

最近学用Yii,结果发现打开网页之后显示Call to undefined function yii\helpers\mb_strlen()。

本来以为是Yii的问题,写了一个简单的小程序,发现mb_strlen没有,代码如下:

PHP
<?php
$string = 'asdf';
echo mb_strlen($string, '8bit');

这样的话,就可以确认是Apache加载PHP时没有加载mbstring。再写一个phpinfo的文件确认一下。代码如下:

PHP
<?php
phpinfo();

发现确实没有mbstring的信息。检查了一下php.ini,发现extension=php_mbstring.dll是打开的,没有被注释。然后直接在命令行用php -m来查看加载信息,发现在命令行中mbstring是加载的。

现在的现象是直接在命令行中是加载了mbstring的,但Apache中未加载mbstring。找了半天也找不到原因。最后一想,是不是目录有问题。

在php.ini里有这么一段,我就直接把extension_dir = "ext"前的注释去掉了,试试写上全路径

Ini
; On windows:
extension_dir = "ext"

改成如下代码:

Ini
; On windows:
extension_dir = "D:/ProCore/PHP/ext"

重启Apache,搞定了。

总结

在Windows的Apache下,要启用php_mbstring.dll,一定要把extension_dir写成全路径。

转载请注明:宇托的狗窝 » Call to undefined function mb_strlen() 的解决方法

发表我的评论
取消评论

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址