我必须将一些 PDF 文件转换为 TXT。我最终得到了“less”命令,因为例如 pdftotext 在 PDF 中的表格存在一些问题。问题是,当我从 exec 函数(或 shell_exec/system)运行命令时,不仅仅是显示信息,选择的 PDF 是二进制文件,结果文件只是 TXT,其中包含 PDF 数据。但是当我在终端正常做同样的事情时,一切都很好。我也尝试以 www_data 用户身份登录并以该用户身份运行命令,但也没有问题。
命令:
$ less /var/www/original.pdf > /var/www/new.txt
PHP代码:
exec("less -f /var/www/original.pdf > /var/www/new.txt 2>&1");
PHP 执行的结果:
"/var/www/original.pdf" may be a binary file. See it anyway?
exec 命令中的“-f”选项在那里,因为这样你就不需要按“y”来表示“是的,无论如何我都想看到它”。
set | grep less
产量:
LESSCLOSE='/usr/bin/lesspipe %s %s'
LESSOPEN='| /usr/bin/lesspipe %s'
Lossless LZW RLE Zip' -- "$cur" ));
_apport_parameterless
_apport_parameterless
_apport_parameterless
_apport_parameterless
_apport_parameterless ()