2017-06-20 15 views
2

在web浏览器上显示'top'命令的输出我有一个简单的带有shell_exec函数的php脚本'top.php'。如何使用Php

代码:

<?php 
echo shell_exec("top"); 
?> 

我所寻找的是要在网络浏览器中查看“顶”命令的结果。所以,如果我访问http://192.168.1.1/top.php我想查看top命令的结果。正如您在命令行终端中看到的那样,定期查看top命令的结果是非常重要的。

但是,当我在网络浏览器上访问'http://192.168.1.1/top.php'时,它不显示任何内容。当我在命令行上执行top.php时(与'php top.php'相同),也是如此。

我不知道什么,或者它是怎么了.....

+0

你可以做'var_dump(shell_exec(“top”));'?这样我们就会知道更多的例如返回类型 – FMashiro

+0

也许'top'不退出并返回输出?如果我没有记错的话,你可能可以做一些事情,比如'top -n 1'或甚至'top -n 1 -b'来获得一页输出并退出。 – David

+0

[这篇文章](https://stackoverflow.com/questions/20107147#20109859)应该回答你的问题(: –

回答

2

默认情况下在命令行上top只是不断运行的,所以我怀疑这里发生了什么时,它不是退出并返回输出PHP。该-n 1标志应解决:

<?php 
echo shell_exec("top -n 1"); 
?> 

这会给你一个“页”输出的top显示在您的网页。为了刷新它,你当然会刷新网页。

为了使一些更平滑的事情(你不必刷新页面),你可以有一个页面,它向这个PHP脚本发出一个AJAX请求,然后在页面上显示输出。然后,您可以使用JavaScript中的setInterval()安排该AJAX请求,以便在您认为合适的情况下以X秒的速度发生。

+0

好神,我认为做一名PHP新手就足以完成这项工作! :)感谢您的详细回复,我将着手研究Ajax,JScript书籍。 – TP32