我正在編寫一個簡單的應用程序,它使用窗體中的信息,將它通過$ _POST傳遞給執行python腳本並輸出結果的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
加入該行後,現在輸出: 啓動Word:狗 結束字:貓從wordgame.py 結果... 蟒蛇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拒絕了由於$關鍵字引起的爭論(或者$可能調用了shell的變量重新應用) –