是否可以使用php在网页上显示“top”等命令?

时间:2013-10-24 03:54:04

标签: php linux

是否可以使用php在网页上显示“top”等命令?

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

2 个答案:

答案 0 :(得分:2)

也许这个:

<?php
$output = null;
exec('top -n 1', $output);
var_dump($output);
?>

答案 1 :(得分:2)

如果我正确理解您的问题,您正试图通过实时更新在客户端上显示交互式程序。这是不可能的,因为你已经证明了。

看起来你可能不明白PHP发生了什么。在客户端下载页面之前,PHP在服务器上运行。然后,客户端在服务器呈现页面时获取页面的“快照”。一旦页面加载到用户的计算机上,服务器就无法触摸该页面。

要获得互动内容,您可以选择一些选项(从最不可取,最简单到最理想,最常见):

  • 刷新页面
  • 定期发布更新请求(AJAX)
  • 让服务器下推更改(COMET,WebSockets)

另一个问题是像top这样的交互式命令会使用一堆特定于终端的(刷新终端,重写文本等等),这会弄乱浏览器中的输出。你需要做像@David这样的事情,并获得输出的快照,并定期将其传达给用户(从上面选择一个)。

您可以选择许多适用于PHP的库和教程。