HTML表单按钮,用于运行PHP以执行Python脚本

时间:2016-05-16 22:39:04

标签: php python html

我正在构建一个本地运行的HTML文档。在它上面是一个按钮,我希望在单击时运行Python脚本。我试图使用PHP生成的按钮。我想要与按钮关联的输入或输出没有;我只是希望它运行脚本,该脚本生成图表作为页面其余部分使用的图像文件。我尝试了几种不同的方法,包括在HTML:

之前将PHP部分放在HTML文档中
<?php
    if (isset($_POST['update']))
    {
        exec('python myScript.py');
    }
>
<!DOCTYPE html>
<html>
<head>
</head> 
<body>

<form name="update" method="post" >
<button name = "update" type="submit"> Update charts </button>
</form>

</body>

我还尝试将PHP代码作为自己的.php文档放在同一目录中,然后从HTML代码中调用它:

<form action = "updateCharts.php" method="post">
<input type="submit" name="update" />
</form>

其中updateCharts.php是:

<?php
    system('cd C:\My\Script\Path');
    system('python MyScript.py');
?>

我也试过用'#34; system&#34;用&#34; exec&#34;但无济于事。在第一部分中,我单击按钮,没有任何反应。在第二个,我单击按钮,我将被带到PHP文档的文本。在任何情况下我的Python脚本都不会运行!

有人看到我失踪了吗?我承认自己是php的新手所以它可能是一个明显的东西。谢谢你的帮助!

2 个答案:

答案 0 :(得分:0)

这是什么:

$command = escapeshellcmd('python /My/Script/Path/myscript.py');
// or
// $command = escapeshellcmd('/My/Script/Path/test.py');
// But you have to make your script executable doing: chmod +x myscript.py
$output = shell_exec($command);
echo $output;

答案 1 :(得分:0)

这不起作用。

<?php
    system('cd C:\My\Script\Path');
    system('python MyScript.py');
?>

您无法通过多个系统调用进行“会话”。每个系统调用都有自己的shell环境。

至少在Linux系统上,您可以用分号级联命令。如果您需要在脚本执行之前设置工作目录,则可以执行

system('cd C:\My\Script\Path ; MyScript.py');

chdir('C:\My\Script\Path');
system('MyScript.py');

但是,可以阻止来自PHP的脚本执行,或者apache可能没有对脚本的适当文件权限,或者,或者。或者

您需要检查日志文件并发布实际输出的内容。