我正在构建一个本地运行的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的新手所以它可能是一个明显的东西。谢谢你的帮助!
答案 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可能没有对脚本的适当文件权限,或者,或者。或者
您需要检查日志文件并发布实际输出的内容。