将参数从php传递给python不完整

时间:2014-01-30 01:48:57

标签: php python

我在将参数从php传递给python时遇到了问题。

使用$ _SERVER ['QUERY_STRING']。

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

我会将 a_num = 123& msg = hello 添加到变量

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

并在python中打印它

a = sys.argv[1]
print a

,结果只有 * a_num = 123 *

问题是什么?

1 个答案:

答案 0 :(得分:1)

我不认为这是PHP的问题,更多的是如何执行系统命令。假设您使用的是Linux,那么'&'命令中的字符:

python python.py a_num=123&msg=hello

被解释为控制操作符。从bash的文档(尽管这同样适用于其他shell,如tcsh):

  

如果命令由控制操作符&终止,则shell在子shell中在后台执行命令。外壳确实如此   不要等待命令完成,返回状态为0。

为了防止这种情况,您需要引用传递的字符串:

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

PHP中的内容如下:

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