2014-09-29 72 views
1

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

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

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

帮助!

编辑:

如果不是PHP,是否有任何其他方式,我可以运行一个命令,如从HTML页面上点击一个按钮“ls”的?

奥利

+0

如果能够将HTML作为跨平台GUI用于命令行脚本,那将是一件很棒的事情。不幸的是,我认为没有在机器上运行Web服务器是不可能的。 – mivk 2014-10-26 13:34:29

回答

0

PHP命令exec应执行的命令和检索标准输出。

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

使得打印命令就可以打印任何HTML的文本,将被插入到客户端接收并显示页面。因此,简单地将该php-snippet与您的实际网页环绕起来。

+0

这一切都是为我打印一个点,是否就像' Hello World! <?php $ result = exec(“ls”);打印($结果)?>。' – thebigpeeler 2014-09-29 08:29:45

+0

是的,有点像那样。为了在你的输出中得到一些格式,你应该很可能逐行迭代你的$结果,并扩展print-command来为你的'ls'输出包含html格式。 – St0fF 2014-09-30 08:43:33

1

您可以使用PHP execfunction,并执行这样exec('/path/myscript.sh')

脚本但可以肯定,你必须建立在正确的方式你的PHP /阿帕奇。试着寻找一些基本的网络服务器配置教程。

+0

即使这纯粹是在我自己的机器上?如果你想使用'php'来执行你的脚本,那么你必须至少设置php/apache并配置它,这就是我的意思。我不会使用网络服务器,它只是在Firefox中显示我自己的娱乐 – thebigpeeler 2014-09-29 07:56:19

+0

。 – deimus 2014-09-29 07:58:49

+0

以什么方式配置它?即时通讯非常新,考虑我一个PHP和html noob。我在我的linux机器上安装了php和apache – thebigpeeler 2014-09-29 09:33:50

0

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

从那里,你将收到的形式输入PHP(你可以使用像Laravel一个框架,使得这个就好办了前端/后端通信 - http://laravel.com/docs/4.2/htmlhttp://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); 

}); 
相关问题