質問: exec($cmd); echo $a; ブラウザから引数を取得し、その値をpythonのコマンドライン引数にしててPHPからPythonを実行する方法を教えてください。 ### 試したこと ここに問題に対して試したことを記載してください。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。
回答: > > $a = exec($cmd); > > echo $a; > > > 外部コマンドを実行する関数は複数あり、処理結果をどうしたいかによって関数を適切に選択しましょう。 > > $cmd = "python date.py $year $month $day"; > > > コマンドラインでこのコマンドが実行できたとしても、PHPから実行できるとは限りません。 ・環境変数 ・カレントディレクトリー がコマンドラインで実行したときと同一である必要があります。このコマンドラインだと`date.py`がカレントディレクトリーにあることが前提です。 カレントディレクトリーの概念を理解していない場合は、全てのファイルをフルパスで指定しましょう。`date.py`の中でファイルを使っていればそれも全部。 > > $year = htmlspecialchars($_POST['year'],ENT_QUOTES); > > $month = htmlspecialchars($_POST['month'],ENT_QUOTES); > > $day = htmlspecialchars($_POST['day'],ENT_QUOTES); > > > `htmlspecialchars`はHTML出力するときに使う関数で、コマンドラインに使うのは意味不明です。コマンドラインに使う場合は、それ用に処理が必要です。