因此,我正在开发自己的应用程序,需要在其中执行shell命令,甚至在单击按钮时执行csh脚本。所有HTML代码都是通过firefox显示我在arduino上设置的一些传感器的结果,所以我基本上将其用作GUI。HTML页面永远不会在线,它完全在我自己的机器上运行。
我知道这并不直接,因为让HTML在实时网页上运行shell命令是一个安全问题,但我一直在读关于能够使用php脚本执行shell命令的文章,但由于它是在独立的PC上运行的,我不知道如何将其集成到通过点击页面上的按钮运行命令中。
事实上,我根本没有使用php的经验,甚至不知道从哪里开始让它在我的HTML代码中运行。
救命!
编辑:
如果不是php,有没有其他方法可以通过点击html页面上的按钮来运行命令,比如"ls"?
Oli
您可以使用exec
php函数,并执行类似exec('/path/myscript.sh')
的脚本
但是,您必须以正确的方式设置php/apache。只需尝试查找一些基本的web服务器配置教程。
php命令exec
应该执行一个命令并检索标准输出。
<?php
$result = exec("wc -l /etc/issue");
print($result);
?>
使用该打印命令,您可以打印任何html文本,这些文本将插入客户端接收和显示的页面中。因此,只需将php片段与实际的网页放在一起即可。
总的来说,您可以创建一个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);
});