我正在使用openvz脚本在家中运行一些虚拟机。 无论如何,我一直在研究一些js和ajax函数来发送post请求,所有这些都以innerHTML部分结束。 但是,当命令运行时,命令的结果合并为一行结果,我想保留原始格式,因为一些vzctl命令产生非常长的输出。 我最初使用PHP,并将命令的实时结果输出到Web浏览器中。 我想保持结果在同一行,如果可能的话,让它像我的旧设置与一些实时控制台源。 这曾经工作,因为我只是使用PHP,但现在我在php前面有AJAX,它删除了格式。
CTID NPROC STATUS IP_ADDR HOSTNAME 101 21 running - -
以上是使用ajax运行时vzlist的示例输出,而底部没有,我该如何修复?
CTID NPROC STATUS IP_ADDR HOSTNAME
101 21 running - -
还有可能将ajax输出放入缓冲区,就像我用php一样吗?
<?php
$cmd = 'sudo '.$_POST["command"].' 2>&1';
while (@ ob_end_flush()); // end all output buffers if any
$proc = popen($cmd, 'r');
while (!feof($proc))
{
echo fread($proc, 4096);
@ flush();
}
?>
带有实时控制台的当前PHP文件。
function whoami () {
$.ajax({
url:"virt.php", //the page containing php script
type: "POST", //request type
data: "command=vzctl start 101",
success:function(result){
document.getElementById("test").innerHTML =(result);
}
});
}
function ls () {
$.ajax({
url:"virt.php", //the page containing php script
type: "POST", //request type
data: "command=vzlist",
success:function(result){
document.getElementById("test").innerHTML =(result);
}
});
}
使用ajax的当前html。 很抱歉长时间阅读,谢谢。
答案 0 :(得分:0)
您可以在为result
创建数据时尝试添加html和文件系统换行符。
在生成它时,我假设在php中,您可以在您想要休息的地方之后放置以下内容。
"<br>\r\n"
您可能已经在生成新行,如果是这样,您可以将输出包装在nl2br()
中。这将创建html <br>
元素来代替换行符。请参阅nl2br。