7

我有这个自定义编译的 PHP(v5.3.3),启用了以下扩展(通过配置):

./configure 
--prefix=/usr/local/php5.3.3 
--with-config-file-path=/usr/local/apache2/conf 
--with-apxs2=/usr/local/apache2/bin/apxs 
--with-bz2 
--with-curl=/usr/lib 
--with-curlwrappers 
--with-freetype-dir=/usr/local 
--with-gd=/usr/local 
--with-gettext 
--with-gmp 
--with-iconv=/usr/local 
--with-imap=/usr/local/imap2007e 
--with-imap-ssl 
--with-jpeg-dir=/usr/local/lib 
--with-kerberos 
--with-libxml-dir=/usr/lib 
--with-mcrypt=/usr/local 
--with-mhash 
--with-mysql=/usr/lib/mysql 
--with-mysql-sock=/var/lib/mysql/mysql.sock 
--with-mysqli=/usr/lib/mysql/mysql_config 
--with-openssl=/usr 
--with-pcre-dir=/usr/local/lib 
--with-pear 
--with-png-dir=/usr/local/lib 
--with-readline 
--with-sqlite 
--with-xmlrpc 
--with-xsl=/usr/local 
--with-zlib-dir=/usr/local/lib 
--with-zlib=/usr/local 
--without-pgsql 
--enable-bcmath 
--enable-calendar 
--enable-exif 
--enable-embedded-mysqli=shared 
--enable-ftp 
--enable-gd-jis-conv 
--enable-gd-native-ttf 
--enable-mbstring=all 
--enable-mbregex 
--enable-shared 
--enable-sockets 
--enable-soap 
--enable-sqlite-utf8 
--enable-zend-multibyte 
--enable-zip 
--disable-pdo 
--disable-phar 

phpinfo()明确指出 mbstring 已启用: 替代文字

有趣的是,当我尝试运行一些 PHP 脚本(SugarCRM 更新)时,它会报告以下错误:

PHP 致命错误:在第 4165 行调用 crm/include/pclzip/pclzip.lib.php 中未定义的函数 mb_strlen()

任何人都可以了解为什么会发生这种情况以及如何解决这个问题?

谢谢,m^e

4

5 回答 5

2

在我的带有 PHP 和 Apache 的 Windows 系统上,我必须修改 PHP.INI 文件,使其包含以下行:

extension=php_mbstring.dll

(在主要[PHP]部分内)并重新启动 Apache。之后,调用mb_strlen确实成功了。

于 2013-02-26T12:09:26.487 回答
2

对于 PHP 4.3.3 或更早版本,要启用该功能,您必须为 --enable-mbstring=LANG 的 LANG 参数提供以下任一选项;--enable-mbstring=cn 支持简体中文,--enable-mbstring=tw 支持繁体中文,--enable-mbstring=kr 支持韩语,--enable-mbstring=ru 支持俄语,--enable -mbstring=ja 用于日语支持(默认)。要启用所有支持的编码,请使用 --enable-mbstring=all

尝试

  • 再次配置--enable-mbstring

  • grep mb_strlen $PATH_TO_YOUR_PHP_BINARY看看它是否存在

于 2010-11-17T11:19:46.500 回答
1

我有同样的问题,这是php版本的问题。

第一次运行

sudo apt install php-mbstring

将mbstring安装到最新安装的php版本

然后运行:

 sudo apt-get dist-upgrade

并重新启动apache

 sudo /etc/init.d/apache2 restart

祝你好运

于 2017-01-07T12:04:24.173 回答
0

将此 phpinfo() 放在某个 php 文件中以供输出。并在那里寻找 MbString 单独的框,如果它不存在,那么它没有正确安装。

于 2010-11-17T11:13:42.137 回答
-2

简单的解决方案。

而是mb_strlen()只使用strlen().

对我来说,它工作了几次。

于 2012-09-26T05:29:31.747 回答