php “call to undefined function mb_check_encoding“ php调用多字节字符串处理相关函数mb_xxx时提示函数未定义解决方法

异常原因

php调用多字节字符串处理相关函数mb_xxx时提示函数未定义解决方法, 如 Uncaught Error: Call to undefined function mb_check_encoding() in  这个异常说明当前php没有安装mbstring扩展。 

解决方法

如果是macos中的macport安装的php, 则执行  sudo port install  phpxx-mbstring 即可安装mbstring扩展, 注意把xx替换为你的php版本号,如 72, 80等。

# 为php 8.0安装mbstring扩展
sudo port install  php80-mbstring 

扩展信息

mbstring 不是一个默认扩展。这意味着它默认没有被激活。 你必须在 configure 选项中显式激活该模块。 详情参见安装这一节。

以下是涉及到 mbstring 的相关配置选项。

  • --enable-mbstring:激活 mbstring 函数。 要使用 mbstring 函数必须启用这个选项。

    libmbfl 对 mbstring 是必要的。libmbfl 被捆绑到了 mbstring。在 PHP 7.3.0 之前,如果系统已安装 libmbfl,--with-libmbfl[=DIR] 可以指定使用已安装的库。

  • --disable-mbregex:禁用正则表达式函数中多字节字符的支持。

    Oniguruma 对于支持多字节字符的正则表达式函数是必需的。自 PHP 7.4.0 起,pkg-config 用于检测 libonig 库。在 PHP 7.4.0 之前,Oniguruma 与 mbstring 捆绑,但可以通过传递 --with-onig[=DIR] 来对已安装的 libonig 库进行构建。

    可以通过指定 --disable-mbregex-backtrack 来禁用多字节正则表达式回溯检查。

更多信息,请参考官方文档 PHP: 安装 - Manual

猜你喜欢

转载自blog.csdn.net/tekin_cn/article/details/142856259