一部の PDF ファイルを TXT に変換する必要があります。たとえば、pdftotextにはPDFのテーブルに問題があるため、「less」コマンドになります。問題は、exec 関数 (または shell_exec/system) からコマンドを実行したときに、情報を表示するだけでなく、選択した PDF がバイナリ ファイルであり、結果ファイルが PDF データを含む TXT であることです。しかし、ターミナルで通常どおり同じことを行うと、すべて問題ありません。また、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 exec の結果:
"/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 ()