4

如果可以的话,我是否允许在我的 php 文件中包含两个或更多文件,结束一个并开始另一个ob_start();的正确方法是什么?ob_start();

4

2 回答 2

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();
?>
于 2010-10-31T01:24:52.367 回答
0

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

ob_start();
$postOutput = preg_replace('/<img[^>]+./','', ob_get_contents());
ob_end_clean();
echo $postOutput;
于 2010-10-31T01:25:03.407 回答