无法从php传递raw_input到Python

时间:2013-07-15 15:30:48

标签: php python parsing python-2.7

你好我有一个解析脚本的Python脚本如下,它使用2个输入

import urllib
import urllib2
code, num = raw_input().split(' ')
parse(num,code)
print success
exit()

现在我正在尝试使用php文件传递raw_input,但它无法正常工作

PHP脚本

<?php 
$num="36";
$code="a";
$result = exec('python test.py "$code $num"');
echo $result;
?>

请帮帮我

2 个答案:

答案 0 :(得分:2)

您没有将任何传递给raw_input()raw_input()stdin管道读取,而不是从命令行读取。

如果您想从命令行中读取,请使用sys.argv

import sys

code, num = sys.argv[1].split()

您需要使用字符串连接来构建PHP调用:

$result = exec('python test.py "' . $code . ' ' . $num . '"');

您可以通过将两个值作为两个单独的命令行参数(这里使用引号,虽然这对于您的特定简单情况可选)来避免必须在Python中拆分:

$result = exec('python test.py "' . $code . '" "' . $num . '"');

并在Python中使用:

import sys

code, num = sys.argv[1:]

答案 1 :(得分:2)

这一行:

$result = exec('python test.py "$code $num"');

将始终传递原始字符串“$ code”和“$ num”。要传递变量的实际值,请执行以下操作:

$result = exec('python test.py "'.$code.' '.$num.'"');