2014-01-30 52 views
0

我在從PHP傳遞參數到python時遇到問題。從PHP傳遞參數到Python不完整

通過使用$ _SERVER ['QUERY_STRING']。

http://www.domain.com/path?a_num=123&msg=hello 

我將把a_num = 123 &味精=你好到可變

$a = $_SERVER['QUERY_STRING']; 
system("python python.py ".$a); 

和在python將打印它

a = sys.argv[1] 
print a 

,其結果是* a_num = 123 *只有

有什麼問題?

+1

'&'是切斷字符串的其餘部分,但我不熟悉PHP知道如何糾正。 – jayelm

+1

@ jmu303是的。我也這麼認爲。 – Vincent

回答

1

我不認爲這是PHP的問題,更多的是如何執行系統命令。假設你使用的是Linux,在命令中「&」字:

python python.py a_num=123&msg=hello 

是被解釋爲一個控制操作。從對於bash的文檔(儘管這同樣適用於其他外殼,例如tcsh的):如果一個命令是由操作者控制終止&

,外殼執行在子shell後臺命令。外殼不 不會等待命令完成,返回狀態是0

爲了防止這種情況,你需要引用字符串傳遞:

python python.py "a_num=123&msg=hello" 

其中在PHP會看像:

system("python python.py \"".$a."\""); 
+1

你是最棒的! – Vincent

+0

很高興我能幫到你。 –