如何找到一个PHP文件包含或直接访问?

时间:2013-04-22 18:15:16

标签: php

有没有办法找出是直接访问php脚本还是包含它。

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

2 个答案:

答案 0 :(得分:16)

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

答案 1 :(得分:3)

使用了ceejayoz的答案,但由于__FILE__自动将realpath()解析为真实路径,因此使用符号链接文件和路径时遇到了麻烦。所以我在$_SERVER['SCRIPT_FILENAME']上使用了if(__FILE__ != realpath($_SERVER['SCRIPT_FILENAME'])) { // we're in an include } 函数来解析两条到实际路径的路径来解决问题。

{{1}}