0

重複の可能性:
PHP で Linux コマンドを実行する

ファイルを作成する PHP ファイルがあり.xfdfます。ターミナル ウィンドウに入力するのと同じように、PHP にコマンドを実行する方法があるかどうか疑問に思っています。.xfdfファイルを生成するには、.pdfファイルの作成後に次のコマンドを実行する必要があります

pdftk /var/www/pdf/TimeCard.pdf fill_form /var/www/pdf/results/Brandon_01_23_13.xfdf output /var/www/pdf/results/testNew.pdf flatten

コマンドは PHP 変数を受け入れることができる必要があるため、ユーザー向けにカスタマイズされています。これを行う簡単な方法はありますか?

4

4 に答える 4

4

はい、 exec()pcntl_exec()system()を使用できます。

$command = 'pdftk /var/www/pdf/TimeCard.pdf fill_form /var/www/pdf/results/Brandon_01_23_13.xfdf output /var/www/pdf/results/testNew.pdf flatten';
exec($command);

これらのコマンドを使用するときは十分に注意してください。これらは非常に便利で強力ですが、このため、ハッカーがそれを介してサーバー全体にアクセスする可能性があります (権限によっては、サイトを危険にさらすには十分すぎるほどです)。

ユーザーがアップロードしたファイル名/テキストを送信する必要がある場合は、それらを血液にチェックしてください (たとえば、ファイル パスが適切な場所にあるかどうかを../../../something.pdf確認し、MIME タイプと拡張子を確認してください)。

于 2013-01-23T08:24:21.087 に答える
2

はい、使用できます:

  1. システム
  2. エグゼクティブ
  3. パススルー
于 2013-01-23T08:24:25.627 に答える
2

正確な要件に応じてexec()system()またはを使用できます。shell_exec()

于 2013-01-23T08:25:56.840 に答える
1

system()またはeval()関数を使用します。

ただし、ユーザーが任意のコマンドを挿入できないようにしてください。

于 2013-01-23T08:23:42.813 に答える