仅在本地计算机上的HTML gui上执行shell命令

时间:2014-09-29 07:40:27

标签: php html linux shell csh

所以我正在处理我自己的应用程序,我需要执行shell命令,甚至在按钮点击时执行csh脚本。所有HTML代码都在显示我已经设置的一些传感器的结果我的arduino通过firefox,所以我基本上用它作为GUI。 HTML页面永远不会在线,它纯粹在我自己的机器上运行。

据我所知,在实时网页上运行HTML命令并不直接,这是一个安全问题,但我一直在阅读能够使用php脚本执行shell命令,但因为它在独立的PC上运行我不知道如何将它集成到从页面上点击按钮运行命令。

事实上,我根本没有使用php的经验,我甚至不知道从哪里开始运行我的HTML代码。

帮助!

编辑:

如果不是php,还有其他方法我可以运行命令,例如' ls'从按钮单击html页面?

奥利

3 个答案:

答案 0 :(得分:1)

您可以使用exec php function,然后执行您的脚本exec('/path/myscript.sh')

但是你必须以正确的方式设置你的php / apache。只是尝试寻找一些基本的Web服务器配置教程。

答案 1 :(得分:0)

php命令exec应执行命令并检索标准输出。

<?php
    $result = exec("wc -l /etc/issue");
    print($result);
?>

使用该打印命令,您可以打印任何html文本,该文本将插入客户端接收和显示的页面中。所以简单地用你的实际网页包围php-snippet。

答案 2 :(得分:0)

一般的想法,你可以创建一个HTML表单,其中包含与特定shell命令相对应的按钮(我知道这不会在Web上生效,因此安全风险可能不是问题)。

从那里,您将收到PHP中的表单输入(您可以使用像Laravel这样的框架,这使得处理前端/后端通信变得更加容易 - http://laravel.com/docs/4.2/html http://laravel.com/docs/4.2/requests

HTML和PHP的简单示例:

<form id="arduino" method="post" action="{{ url('arduino/control') }}">
                <input type="text" name="command"/>
                <input type="submit">
            </form>

<?php 
Route::post('arduino/control', function () {

$command = Input::get('command');
exec($command); 

});