11

有什么方法可以查明一个 php 脚本是直接访问还是包含在内。

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

2 回答 2

16
if(__FILE__ != $_SERVER['SCRIPT_FILENAME']) {
  // we're in an include
}
于 2013-04-22T18:17:40.500 回答
3

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

if(__FILE__ != realpath($_SERVER['SCRIPT_FILENAME'])) {
    // we're in an include
}
于 2014-04-27T02:07:53.623 回答