フォームの情報を使用する単純なアプリケーションを作成し、$ _POSTを使用してPHPスクリプトを実行し、結果を出力するPHPスクリプトに渡します。私が午前の問題は、私のPythonスクリプトは、実際に渡される引数を指定して実行されていないことであるPHP変数を使用してPythonスクリプトを実行
process3.phpファイル:。
<?php
$start_word = $_POST['start'];
$end_word = $_POST['end'];
echo "Start word: ". $start_word . "<br />";
echo "End word: ". $end_word . "<br />";
echo "Results from wordgame.py...";
echo "</br>";
$output = passthru('python wordgame2.py $start_word $end_word');
echo $output;
?>
出力:
Start word: dog
End word: cat
Results from wordgame.py...
Number of arguments: 1 arguments. Argument List: ['wordgame2.py']
の上部に私のwordgame2.py、私は次の(デバッグの目的のために):
#!/usr/bin/env python
import sys
print 'Number of arguments:', len(sys.argv), 'arguments.'
print 'Argument List:', str(sys.argv)
私はなぜですか?引数が渡された= 3? (はい、私のフォームからデータが正しく送信されます)
何か助けていただければ幸いです!
編集:私は明示的に開始と終了の単語を教えてくれたとき、私はそれを実行しないことを追加される場合があります...このような何か:
$output = passthru('python wordgame2.py cat dog');
echo $output
あなたのPHPファイルで 'echo 'python wordgame2.py $ start_word $ end_word''を見るとどうなりますか? – GWW
は、その行を追加した後、それは今出力: スタートの単語を:犬 終了ワード:猫wordgame.pyから 結果... のpython wordgame2.py犬猫引数の 数:1つの引数。引数リスト:['wordgame2.py'] – Micah
間違いは '$ output = passthru( 'python wordgame2.py $ start_word $ end_word');'これを試してみてください '$ output = passthru( 'python wordgame2.py' 。$ start_word。 ""$ end_word); 'おそらく、Pythonは$ keywordのために引数を拒否しているかもしれません(または$が変数の再読み込みのためにシェルを呼び出すかもしれません) –