【问题标题】:How to find out a php file is included or accessed directly?如何找出包含或直接访问的 php 文件?
【发布时间】:2013-04-15 18:07:52
【问题描述】:

有什么办法可以查出一个php脚本是直接访问还是被包含进来的。

  1. 假设我们不包含它,那么设置会话变量不会解决问题。我无法检查它包含在哪里。可能有 20 多个地方!
  2. 应该在 php 脚本中检测到。 (通过 php 函数和变量)

【问题讨论】:

标签: php


【解决方案1】:
if(__FILE__ != $_SERVER['SCRIPT_FILENAME']) {
  // we're in an include
}

【讨论】:

    【解决方案2】:

    使用 ceejayoz 的答案,但由于 __FILE__ 被自动解析为真实路径,我在使用符号链接文件和路径时遇到了麻烦。所以我在$_SERVER['SCRIPT_FILENAME']上使用了realpath()函数,而不是把两条路径都解析到真正的路径来解决问题。

    if(__FILE__ != realpath($_SERVER['SCRIPT_FILENAME'])) {
        // we're in an include
    }
    

    【讨论】:

      猜你喜欢
      • 2010-09-29
      • 1970-01-01
      • 1970-01-01
      • 2018-06-09
      • 1970-01-01
      • 2020-05-04
      • 2012-12-02
      相关资源
      最近更新 更多