我正试图用php编写一个本质上是交互式ssh系统的东西,我需要让php用ssh_exec或shell在远程服务器上执行命令,并实时收集命令的输出。
我一直在处理输出缓冲和flush(),直到我脸色发青,即将让命令将其输出重定向到文件,并有一个单独的脚本,该脚本使用sftp轮询该文件的内容,并使用jquery更新页面上的输出div。
就在我走这条冗长的路线之前,有人有一个使用单个脚本的解决方案吗?
谢谢!
没有这样的东西可以用一个脚本可靠地工作:你对服务器端的缓冲几乎没有控制权——flush()
可能会或可能不会按预期工作,这取决于你是使用mod_php
、CGI
、FCGI
还是其他什么,而你对客户端的缓冲完全没有控制权(IE在这里很臭名昭著)。
去过那里,做到了,用AJAX做到了。
下面这样的东西会不起作用吗?
$output = shell_exec($theScript);
file_put_contents($someFile, $output, FILE_APPEND);
或者我是不是搞错了?