我用表格制作了一个数据输入网页。 我想使用网页上的值在服务器上运行python脚本,并在服务器上创建输出文件。 现在我可以输入数据并提交网页。但是python脚本没有在服务器上创建输出文件。
以下是我的脚本。
首先,我连接到index.php并在表单上输入一些文本并提交
下面是index.php
<html>
<body>
<form action="1test.php" method="get">
<input type="text" name="name" />
<input type="submit" />
</form>
</body>
</html>
其次,1test.php使用index.php上的表单值执行test.py.
以下是1test.php
<?php
$name = $_GET['name'];
$cmd = "python test.py " . $name;
echo $cmd;
exec($cmd);
?>
我的脚本在python脚本之前工作。我可以在网上看到$ cmd值。但是php无法执行python。 python脚本具有执行权限。 最后,python脚本在服务器上生成文件。表单值将是python上的数组数据。
下面是test.py
import sys
sip = sys.argv[1]
with open("doc.txt",'w') as f:
f.write(sip)
f.close()
答案 0 :(得分:3)
尝试使用stderr
将错误从stdin
重定向到2>&1
并捕获退出代码:
<?php
$name = $_GET['name'];
$cmd = escapeshellcmd("python test.py $name 2>&1");
echo "$cmd" . PHP_EOL;
exec($cmd, $output, $return_var);
echo "$return_var:" . PHP_EOL;
print_r($output);
$output
是一系列行。如果脚本返回0
(值$return_var
),则表示成功。