【问题标题】:Php outputs contents while bufferingphp在缓冲时输出内容
【发布时间】:2023-03-22 21:50:02
【问题描述】:

我有一个在本地服务器(wamp、apache v2.22.2、php 5.4.3)和测试 unix 服务器(apache、php 5.3)上运行良好的应用程序。
但由于其他一些要求,它不适用于在 Windows 上运行的生产服务器。
代码如下:

function renderFile()
...
ob_start();
ob_implicit_flush(false);
require($_viewFile_);
return ob_get_clean();

问题是包含的文件的内容是立即输出的,而不是从函数返回的。
问题是它适用于本地和测试服务器,但不适用于 Windows 上的新生产服务器。是因为apache/iis还是php配置?

【问题讨论】:

  • 在获得内容之前你正在刷新它

标签: php iis buffering


【解决方案1】:
function renderFile() {
  ob_start();
  include($_viewFile_);
  $view = ob_get_contents();
  ob_end_clean();
  return $view;
}

现在就用$view 做你想做的事。

echo renderFile();

【讨论】:

  • 不,不是这样。 ob_get_clean — 获取当前缓冲区内容并删除当前输出缓冲区。另外,为什么它可以在另外两台服务器上运行,而不是在这台服务器上运行。而 ob_implicit_flush(false) 是这样的,所以刷新不会发生在每个输出调用上。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-18
  • 1970-01-01
  • 2010-11-16
  • 1970-01-01
  • 2012-12-30
  • 1970-01-01
相关资源
最近更新 更多