【问题标题】:PHP - nested output bufferingPHP - 嵌套输出缓冲
【发布时间】:2012-05-17 13:42:04
【问题描述】:

我的功能有:

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

现在在这些包含中是另一个使用相同代码的函数,它们似乎 冲突。可以这样使用吗?

【问题讨论】:

  • 他们怎么看冲突?你有错误吗?
  • 你不能两次声明同一个函数,你可以用某种 if(!function_exists('blah')) { function blah() { ... } }
  • 是什么让你认为它们有冲突?

标签: php nested buffering ob-start


【解决方案1】:

尝试像这样使用输出缓冲区:

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

在所有包含中使用它,您不会收到任何错误

【讨论】:

  • 我有类似的问题,但错误地使用了 ob_clean() 而不是 ob_end_clean() - 注意它们的区别!
【解决方案2】:

输出缓冲应该是可堆叠的,你只需要匹配 ob_start 和 ob_end_clean。见http://php.net/ob_start

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多