首页 > 解决方案 > PHPSpreadsheet 未定义函数 mb_strlen

问题描述

我安装了 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]

知道是否缺少其他东西或我该如何解决这个问题?

标签: phpphpoffice

解决方案


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

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


推荐阅读