【问题标题】:php output buffering - prevent part of code from being parsed?php 输出缓冲 - 防止部分代码被解析?
【发布时间】:2014-03-06 20:19:41
【问题描述】:

我正在使用输出缓冲生成静态 HTML 页面 使用包含。

有什么方法可以防止某些部分的 php 代码被解析?这样php仍然完好无损,而不是有输出?

【问题讨论】:

  • 你想要实际的 PHP 代码吗?
  • 正如@Andrew 在他的回答中所说,如果您不想解析它,请使用 file_get_contents(),而不是 include()。

标签: php output-buffering


【解决方案1】:

根据 PHP 文档:

当一个文件被包含时,它包含的代码继承了包含发生的行的变量范围。从那时起,调用文件中该行的任何可用变量都将在被调用文件中可用。但是,包含文件中定义的所有函数和类都具有全局范围。

话虽如此,我认为您不能在此处使用 include。如果您不希望 PHP 解释器解析 PHP 代码,我会使用 file_get_contents() 或类似的东西。这将允许您在不解析任何 PHP 代码的情况下获取文件。

【讨论】:

    【解决方案2】:

    如果您希望 html 的不同部分具有不同的缓存策略,那么实现此目的的方法是将脚本拆分为生成单独的 HTML 片段的部分,然后使用另一个脚本将这些位重新组合在一起。这样做有一个标准 - ESI - 但与 with SSI 相比,它可能有点繁琐(最好在反向代理上实现)

    【讨论】:

      猜你喜欢
      • 2013-02-08
      • 2015-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-18
      • 1970-01-01
      • 2011-11-06
      • 1970-01-01
      相关资源
      最近更新 更多