【发布时间】:2013-04-15 18:07:52
【问题描述】:
有什么办法可以查出一个php脚本是直接访问还是被包含进来的。
- 假设我们不包含它,那么设置会话变量不会解决问题。我无法检查它包含在哪里。可能有 20 多个地方!
- 应该在 php 脚本中检测到。 (通过 php 函数和变量)
【问题讨论】:
-
不,它不是重复的,请参阅我的问题的第 1 点,我无法检查它包含在哪里。可能有20多个地方!
标签: php
有什么办法可以查出一个php脚本是直接访问还是被包含进来的。
【问题讨论】:
标签: php
if(__FILE__ != $_SERVER['SCRIPT_FILENAME']) {
// we're in an include
}
【讨论】:
使用 ceejayoz 的答案,但由于 __FILE__ 被自动解析为真实路径,我在使用符号链接文件和路径时遇到了麻烦。所以我在$_SERVER['SCRIPT_FILENAME']上使用了realpath()函数,而不是把两条路径都解析到真正的路径来解决问题。
if(__FILE__ != realpath($_SERVER['SCRIPT_FILENAME'])) {
// we're in an include
}
【讨论】: