PHP ob_start()问题

时间:2010-10-31 01:17:23

标签: php output-buffering

我是否允许在我的php文件中有两个或更多ob_start();,如果是这样,结束一个ob_start();并启动另一个{0}的正确方法是什么?

2 个答案:

答案 0 :(得分:6)

从手册:

  

输出缓冲区是可堆叠的,即   你可以在另一个时调用ob_start()   ob_start()处于活动状态。请确保   你调用ob_end_flush()了   适当的次数。如果   多输出回调函数   活动,输出正在过滤   顺序通过它们中的每一个   嵌套顺序。

除了堆叠(嵌套)之外,您还可以按顺序使用单独的块。

<?
ob_start();
echo "Foo";
ob_end_flush(); // outputs buffer contents and turns off output buffering

ob_start();
echo "Bar";
ob_end_flush();
?>

答案 1 :(得分:0)

您可以在页面上执行多个ob_start()。你用ob_end_clean()结束ob_start()。

ob_start();
$postOutput = preg_replace('/<img[^>]+./','', ob_get_contents());
ob_end_clean();
echo $postOutput;