PHPSpreadsheet未定义函数mb_strlen

时间:2019-02-01 16:35:08

标签: php phpoffice

我安装了phpspreadsheet,但出现错误:

PHP致命错误:在第469行上的/opt/apache/htdocs/mysite/tools/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/StringHelper.php中调用未定义函数PhpOffice \ PhpSpreadsheet \ Shared \ mb_strlen()

这是用于调用phpspreadsheet的代码:

require '../vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;

根据我的发现,这意味着插件mbstring无法正常工作/未安装,但我的PHP表示已安装:

# php -m
[PHP Modules]
Core
ctype
curl
date
dom
ereg
fileinfo
filter
gd
hash
iconv
intl
json
libxml
mbstring
mhash
mysql
mysqli
openssl
pcre
PDO
pdo_mysql
Phar
Reflection
session
SimpleXML
SPL
sqlite3
standard
xml
xmlreader
xmlwriter
zip
zlib

[Zend Modules]

您是否知道是否还有其他遗漏或如何解决?

2 个答案:

答案 0 :(得分:1)

CLI配置与Web配置分开。 根据您的环境,您必须更改通过使用的任何Web服务器访问PHP时正在使用的php.ini文件。

为了检查php.ini文件的使用位置,可以从Web应用程序(非CLI)运行phpinfo()phpinfo()输出将包含php.ini文件位置的信息。

答案 1 :(得分:0)

因此,所有内容都指向它正在安装和运行中,但是它仍然显示错误。我什至验证了mbstring.so确实存在,应该在php.ini中,并且没有注释。

我尝试安装它,但是因为它已经在那里而无所事事。

我要解决的问题是卸载mbstring,然后再次从opencsw(我从中安装所有php软件包的位置)安装它。

这样做之后,再次重新启动apache,它不再给我错误。