无法调用内置的 mb_internal_encoding 方法?

Posted

技术标签:

【中文标题】无法调用内置的 mb_internal_encoding 方法?【英文标题】:Unable to call the built in mb_internal_encoding method? 【发布时间】:2010-11-16 00:30:05 【问题描述】:

我试图在 CentOS 5.3 VMware 'box' 上安装 indefero,但遇到了问题。 在安装的早期,我收到了一个错误,我可以将其范围缩小到:

[root@code /var/www/html]# cat x.php
 <?php
     mb_internal_encoding("UTF-8");
 ?>
[root@code /var/www/html]# php x.php
PHP Fatal error:  Call to undefined function mb_internal_encoding() in 
/var/www/html/x.php on line 2

通过 Apache 通过 http 调用此脚本时,我遇到了同样的错误。 现在根据PHP manual the mb_internal_encoding function 应该是 PHP 5 中的内置函数。

我有 CentOS 5.3 i386(Linux 代码 2.6.18-53.1.21.el5 #1 SMP Tue May 20 09:34:18 EDT 2008 i686 i686 i386 GNU/Linux)并且我已经安装了 PHP 5.2.9。

[root@code /var/www/html]# php -v
PHP 5.2.9 (cli) (built: Jul  8 2009 06:03:36)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies

我再次检查:selinux 已被禁用(暂时)。

我该如何解决这个问题?

【问题讨论】:

真的是内置的吗?调用 php -m 获取内置模块列表。 【参考方案1】:

对于 ubuntu 中的 php 5.6

sudo apt install php5.6-mbstring

重启 Apache2

sudo systemctl restart apache2

【讨论】:

【参考方案2】:

apt-get install php7.3-mbstring解决了ubuntu上的问题,php版本是php-fpm 7.3

【讨论】:

【参考方案3】:

如果您不知道如何在 windows 中启用 php_mbstring 扩展,请打开您的 php.ini 并删除扩展前的分号:

改变这个

;extension=php_mbstring.dll

到这里

extension=php_mbstring.dll

修改后需要重置你的php服务器。

【讨论】:

【参考方案4】:

对于 OpenSUse(zypper 包管理器):

zypper install php5-mbstring

和:

zyper install php7-mbstring

另一方面,您可以通过 YaST 软件管理器搜索它们。

注意,你必须重启apache http服务器:

systemctl restart apache2.service

【讨论】:

【参考方案5】:

对于 Debian/Ubuntu:

sudo apt-get install php7.0-mbstring

【讨论】:

sudo apt-get install php-mbstring 在最近的发行版中。【参考方案6】:

如果有人在 ubuntu 中安装 php-mbstring 软件包时遇到问题,请执行以下操作 sudo apt-get install libapache2-mod-php5

【讨论】:

另外值得注意的是,如果使用 ondrej/php 存储库中的 php7.0,正确的包是 php7.0-mbstring。【参考方案7】:

mbstring 是一个“非默认”扩展,默认情况下不启用;参见手册的this page:

安装

mbstring 是一个非默认扩展名。 这意味着它未被启用 默认。您必须明确启用 带有配置选项的模块。 有关详细信息,请参阅安装部分

因此,您可能必须启用该扩展,修改 php.ini 文件(并重新启动 Apache,因此您的修改会被考虑在内)

我不使用 CentOS,但您可能必须先安装扩展,使用类似这样的东西 (例如,请参阅 this page,这似乎提供了解决方案)

yum install php-mbstring

(包名可能有点不同;所以,使用 yum 搜索来获取它:-))

【讨论】:

在您执行 yum install php-mbstring 之后您需要做些什么吗?我试过 apachectl restart 但没有骰子 yum install php70w-mbstring for php7 是的,需要重启 apachectl restart 对于 Ubuntu,可以使用 apt install php-mbstring,然后当然可以使用 systemctl restart apache2 重新启动 apache @PascalMARTIN 它为我工作......但我无法重新启动 centos 中的 apache 服务器。请帮忙。

以上是关于无法调用内置的 mb_internal_encoding 方法?的主要内容,如果未能解决你的问题,请参考以下文章

无法从 Python C API 中内置的模块调用方法

无法在函数内调用非内置函数

我无法在地理服务器上运行我的 php 脚本

python 内置函数

无法从 C++ 调用 .Net 服务

vue v-html调用函数,说说如何利用 Render 函数来实现 Vue.js 的内置指令