php - 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]
知道是否缺少其他东西或我该如何解决这个问题?
解决方案
CLI 配置与 Web 配置是分开的。根据您的环境,您必须更改通过您使用的任何 Web 服务器访问 PHP 时正在使用的 php.ini 文件。
为了检查正在使用的 php.ini 文件的位置,您可以phpinfo()
从您的 Web 应用程序(而不是 CLI)运行。phpinfo()
输出将包含文件php.ini
位置信息。
推荐阅读
- bash - 如何在 bash 中创建具有动态名称的数组
- mysql - 使用 WHERE...IN 更新多行
- ios - UICollectionViewFlowLayout、UICollectionView:更改屏幕方向会破坏单元格排列
- asp.net-mvc - MVC 项目间共享布局
- php - Laravel 5.7 - CSS 和 JS 不使用 URL::asset 加载
- c# - 文档 ID 和授权的 MongoDB 多租户数据库策略
- sql - SQL Server :“您的 SQL 语句的某些部分嵌套得太深。重写查询或将其分解为更小的查询。”
- docker - nginx 反向代理 docker 应用程序
- python - 使用子进程、Python 和 PSQL 进行多处理
- ios - 如何通过 Airdrop 发送和接收自定义数据