PHPページからコマンドラインに変数を渡すにはどうすればよいですか
-
28-10-2019 - |
質問
現在、次の2つのコマンドを使用して、MySQLテーブルから入力されたクライアントステートメントを生成しています。 client_id、date_startの3つの変数があります。 date_end
wget -O mypage.html "http://mypage.php?client_id=var1&date_start=var2&date_end=var3"
wkhtmltopdf-i386 --margin-left 5mm --margin-right 5mm mypage.html mypage.pdf
これは完全に機能し、使用可能なステートメントを作成します。私が今やりたいのは、3ドロップダウンメニューを使用してWebページを実装して、Linuxコマンドラインに直接入力するのではなく、各変数を選択することです。ユーザーはクライアントを選択し、日付の開始と日付の終了を選択し、Webインターフェイスを使用して「レポートを印刷」をクリックします。これにより、変数がコマンドラインに送信され、上に表示されている2つの行が実行されます。
フォームの作成方法を知っていますが、変数をコマンドラインに渡してこれらの2行を実行する方法を理解できません。誰かが助けることができるなら、私はそれが簡単だと思いますか?
どうもありがとう
解決
//assumes, you have extracted $clientid, $startdate, $enddate from your $_REQUEST and validated them
$command="wget -O mypage.html \"http://mypage.php?client_id=$clientid&date_start=$startdate2&date_end=$enddate\"";
exec($command, $output, $status);
if ($status!=0) die("wget failed");
$command="htmltopdf-i386 --margin-left 5mm --margin-right 5mm mypage.html mypage";
exec($command, $output, $status);
if ($status!=0) die("htmltopdf failed");
落とし穴:使用する必要があります /path/to/wget
と /path/to/htmltopdf-i386
確かに、あなたの道は大丈夫です
他のヒント
http://php.net/manual/en/function.system.php あなたのニーズへの答えです:)
それはあなたのために出力を取得します(エラーメッセージなどの場合、非常に便利です)
複数のコマンドを実行するには、&& eg:system( "ls && exit");
コマンドラインからそれを実行しようとすると、同じ問題がありますが、それはチャームのように機能しますが、ブラウザを介して実行しようとすると、動作しません。
Test.phpファイルで同じコードをコマンドラインでテストしました。コマンドラインでは、PDFファイルを生成しますが、ブラウザでは生成されません。
あなたは答えられたようにあなたの質問を割り当てました。正しい答えはどこにあるのかわかりません...
たぶんあなたはこの質問で同じ問題を解決しています exec()PHPの長いコマンドの問題
編集3をご覧ください