PHP - 嵌套的输出缓冲

22

我有一个函数,里面包含:

ob_start();
//Include of some files
$content = ob_get_contents();
ob_end_clean();

现在在那些 includes 里有另一个使用同样代码的函数,它们似乎有冲突。是否可能这样使用它们?


它们似乎存在冲突吗?你是否遇到错误? - Kavi Siegel
你不能声明同一个函数两次,但你可以将函数定义包装在if(!function_exists('blah')) { function blah() { ... } }这样的语句中。 - Martin
你为什么认为它们会冲突? - goat
2个回答

24

试着使用输出缓冲,像这样:

ob_start();
// your includes
echo ob_get_clean();

在所有的包含文件中使用这个,就不会出现任何错误。


2
我曾经遇到过类似的问题,但错误地使用了ob_clean()而不是ob_end_clean() - 请注意它们之间的区别! - besimple

11

输出缓冲区可以堆叠使用,只需要将ob_start与ob_end_clean相匹配即可。请参见http://php.net/ob_start


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接