如果我经常使用echo,我应该使用输出缓冲吗?


If I use echo a lot, should I use output buffering?

你好,这是一个基本问题,但我不确定,所以我问你:

如果我的html代码中有超过100个php echo,像这样:

file.php:

<!-- headers -->
<h1><?php echo $text1; ?></h1>
<p><?php echo $text20; ?></p>
<p><?php echo $text10; ?></p>
<!-- more code -->

我应该使用输出缓冲吗?如果是这样,哪一种方式(或函数)是"显示"输出的正确方式?

理想的输出缓冲有一个主要原因,它不是为了减少回显的数量。它是理想的,因为它允许您编写缓存文件,并在请求时提供该静态缓存文件。然后,PHP永远不会直接输出到浏览器,它总是在加载并显示到浏览器时写入文件。假设您将缓存过期头设置为合理的持续时间,这将提高性能,而不是担心"如何"输出数据。

典型案例:

  1. 用户访问"contact.php"
  2. 'contact.php'检查现有缓存文件
  3. 如果文件存在并且不需要刷新,只需显示文件并退出。
  4. 如果文件存在并且需要刷新,(重新)将所有缓冲的输出写入该文件并显示它。
  5. 如果文件不存在,请参见步骤4。