HTML表单按钮运行PHP来执行Python脚本


HTML form button to run PHP to execute Python script

我正在构建一个本地运行的HTML文档。上面有一个按钮,我希望在单击时运行Python脚本。我正在尝试使用PHP生成的按钮。没有输入或输出,我想与按钮相关联;我只想让它运行脚本,它将图表作为页面其他部分使用的图像文件生成。我尝试了几种不同的方法,包括将PHP部分放在HTML文档中,然后放在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');
?>

我也试过用"exec"代替"system",但没有用。在第一部分中,我点击按钮,什么也没发生。在第二个例子中,我点击按钮,进入PHP文档的文本。在这两种情况下,我的Python脚本都不会运行!

有人看到我缺了什么吗?无可否认,我是php的新手,所以它可能会让人眼花缭乱。谢谢你的帮助!

这是什么:

$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;

这不起作用。

<?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可能对脚本没有适当的文件权限,或者,或者。

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