如何在php上运行python?

时间:2017-08-28 02:22:53

标签: php python html

我用表格制作了一个数据输入网页。 我想使用网页上的值在服务器上运行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()

1 个答案:

答案 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),则表示成功。