2011-04-24 85 views
0
ob_start(); 

for($i=1; $i<=10; $i++){ 
    echo 'FUU'; 
    $output = ob_get_contents(); 
} 

echo $output; 
ob_end_flush(); 

所以不是一个FUU我得到10个!为什么我的ob_start()无效?PHP输出缓冲不起作用!

+0

One?十?你不应该得到二十吗?您在输出缓冲区中回显了十次,然后将$输出(也包含十次)输出到您的输出缓冲区中,然后刷新缓冲区,该缓冲区应该输出两组数据。 – 2011-04-24 14:00:31

+0

可能是,我看到了很多:) – Alex 2011-04-24 14:01:41

回答

2

我不认为你得到它在做什么。下面是通过散步:

$i = 1 
Output buffer = FUU 
ob_get_contents()/$output = FUU 

$i = 2 
Output buffer = FUUFUU 
ob_get_contents()/$output = FUUFUU 

$i = 3 
Output buffer = FUUFUUFUU 
ob_get_contents()/$output = FUUFUUFUU 

当你调用​​每次迭代中,它让一切已经echo版。

+0

doh!我很愚蠢:x – Alex 2011-04-24 14:00:28