在PHP中捕获ncurses shell输出

时间:2014-01-17 16:35:51

标签: php shell ncurses

好吧所以我不知道这是否可能,说实话我更倾向于不可能的规模结束,但我认为这可能值得问。

基本上我想知道的是,是否有可能捕获用php中的ncurses呈现的shell输出,以便与htop等工具一起使用。

我注意到php有一大堆实验性的ncurses函数,但它们似乎都是为了创建不读它的内容。理想情况下,我喜欢的东西,我可以最终得到类似

的东西
$output = ncurses_exec("htop --no-loop");

注意:我知道htop没有--no-loop的选项,但我添加它以使程序在第一次渲染后退出(渲染可以被清除或保留)仅用于测试目的

提前致谢

1 个答案:

答案 0 :(得分:1)

有一个解决方案:

使用Gnu Screen

将命令发送到以分离模式运行的screen。这是一个快速而肮脏的例子,只是为了让你入门:

<?php

// Start screen in detached mode, running htop
`screen  -d -m -S htop_session htop`;

 // let screen and htop start
sleep(1);

// Tell screen to save a screenshot in file 'hardcopy.0'
`screen -p 0 -S htop_session -X hardcopy`;

// Tell screen to quit
`screen -p 0 -S htop_session -X quit`;
?>

<pre>
    <?php print file_get_contents('hardcopy.0'); ?>
</pre>

要尝试的事情

  • 尝试如何设置更大的屏幕窗口大小