这是我的代码,应该根据其他类似问题的答案工作,但事实并非如此。
PHP:
<?PHP
$par = $_POST["parameter"];
$importPar=exec("py pyData.py . $par"); //also tried shell_exec()
print ($par);
print($importPar);
?>
的Python:
import sys
who = sys.argv[1]
print("This is php var: ",who)
它可能需要对我的cmd做一些事情,因为即使我尝试也没有返回任何内容:
$test=shell_exec('ipconfig');
echo $test;
答案 0 :(得分:0)
通过微小的修改,您的代码在我的PHP 5.6.3设置上运行得很好。下面我的示例中唯一的实质性区别是$par
在本地设置,而不是从$POST
输入。
轻微更正:
1.当您在双引号中包含.
时,$variable
不是必需的。这实际上会让python认为你要打印.
而不是$par
,因为.
被读作sys.argv[1]
。
2.我假设py
是别名,但我需要在python
中使用exec()
才能正常运行。
3.您将使用python语句按原样获得一个元组作为打印输出:('This is php var: ', 'foo')
。请考虑使用.format()
,请参阅下文。
""" test.py
import sys
who = sys.argv[1]
print('This is php var: {}'.format(who))
"""
<?PHP
$par = "foo";
$importPar=exec("python test.py $par");
print ("$par\n");
print($importPar);
?>
输出:
foo
This is php var: test.py
Process finished with exit code 0