[英]Call to undefined function mb_strlen() on PHP 7 Ubuntu 14.04
[英]PHP: Call to undefined function mb_strlen() - on custom compiled PHP with mbstring enabled
我有这个自定义编译的PHP(v5.3.3),启用了以下扩展(通过configure):
./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
在我使用PHP和Apache的Windows系统上,我不得不修改PHP.INI文件,使其包含以下行:
extension=php_mbstring.dll
(在主[PHP]
部分内)并重启Apache。 之后,对mb_strlen
的调用确实成功了。
对于PHP 4.3.3或更高版本,要启用该功能,您必须向LANG参数--enable-mbstring = 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
看它是否存在
简单解决方案
相反, mb_strlen()
只使用strlen()
。
对我来说,它工作了几次。
我遇到了同样的问题,这是php版本的一个问题。
首轮
sudo apt install php-mbstring
将mbstring安装到最新安装的php版本
然后运行:
sudo apt-get dist-upgrade
并重启apache
sudo /etc/init.d/apache2 restart
祝好运
把这个phpinfo()放在一个php文件中输出。 并在那里寻找MbString单独的盒子,如果它不存在,那么它没有正确安装。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.