在网页上实时显示PHP输出

问题描述:

我想在现场的div中显示我的PHP脚本的输出。我使用Laravel 5.4 我的PHP代码:在网页上实时显示PHP输出

$cmd = 'ping -c 10 127.0.0.1'; 

while (@ ob_end_flush()); 
$proc = popen($cmd, 'r'); 
echo '<pre>'; 
while (!feof($proc)) 
{ 
    echo fread($proc, 4096); 
    @ flush(); 
} 
echo '</pre>'; 

return view('layouts/test'); 

当我加载页面,我的功能工作,它的实时显示,但它占据整个页面。 我试图使用Ajax,我能够检索输出,但它不是实时显示。 有人有想法吗?

+0

如果它工作后加载,这是什么问题?整个页面?你是否尝试将一些样式应用于div(假设内容是嵌套的),如宽度,溢出等等,以显示显示结果的显示方式? – rmjoia

将脚本加载到iframe中应该可行。

<iframe src="/script.php"></iframe> 

或可替换地,如果你需要一个特定的动作

<iframe id='myIframe'></iframe> 

<script type="text/javascript"> 
document.getElementById('myIframe').src = '/script.php'; 
<script> 
+0

他可能在使用Ajax时遇到的问题是它在显示输出之前等待脚本完成,因此刷新输出缓冲区将不起作用。 使用iframe应该使它像通常加载页面一样对待它,因此刷新的输出应该在脚本运行时显示。在iframe中将保持iframe中的内容,并且不会影响周围的页面,因此它将修复“整页”问题。 –

+0

谢谢你回答大厅。这是我所寻找的。它正在使用一个简单的index.php页面。我现在会尝试将其包含在我的Laravel项目中。 – edward

+0

@edward如果这个答案适合你,请评价并接受它 –