php - 为什么 in2csv 不使用非 ascii 表标题转换我的 XLSX 文件?[CentOS x64]
问题描述
我的问题是我有一个带有非 ascii 工作表名称 ( Общий отчет
) 的 Excel XLSX 文件,我正在尝试使用 in2csv 工具将其转换为 CSV。exec
我使用函数从 PHP 运行它。
在我的本地机器(Windows 10 x64)上,一切正常。我正在尝试在 CsntOS x64 VDS 上运行它,当我exec
从终端启动我的 PHP 脚本(用于调用 in2csv 工具)时 - 它也可以正常工作。但是当我从 cron ( php -f ./task.php
) 运行它时 - 它不会产生错误,但生成的 CSV 文件是空白的!
我做了一些测试,检查运行 PHP 脚本的用户和组,python 默认编码,但仍然没有任何线索。请帮忙!
这是转换文件的命令:
in2csv --locale ru_RU --sheet "Общий отчет" --encoding windows-1251 "prices.xlsx" > "prices.csv"
解决方案
最后我想通了。
PHPexec
函数中的命令应如下所示:
exec('/usr/bin/in2csv --locale ru_RU --sheet "Общий отчет" --encoding windows-1251 "/home/admin/www/html/prices.xlsx" > "/home/admin/www/html/prices.csv"');
cron 命令应如下所示:
/usr/bin/php -f /home/admin/www/html/task.php
也就是说,您需要提供所有可执行文件的完整路径,这将在终端和 Cron 中都有效!
推荐阅读
- haskell - 如何将 Javascript 对象转换为 JSVal
- python - 使用套接字的 Python 端口转发
- android - 计算数据库实时数据时出现异常
- c# - 如何以受控、影响较小的方式升级 nuget 包?
- python - 使用 Docker 测试多个 Python 配置的最佳方法
- microsoft-translator - Microsoft 翻译服务示例应用程序不起作用
- airflow - Snowflake|Airflow:如何将 Snowflake 中的数据卸载为 xls 格式
- css - 处理高宽溢出
- sharepoint - SharePoint Online - AppInv
- javascript - 两个 div 共享相同的线性渐变背景