有什么方法可以查明一个 php 脚本是直接访问还是包含在内。
- 假设我们不包含它,那么设置会话变量不会解决问题。我无法检查它包含在哪里。可能有20多个地方!
- 它应该在 php 脚本中检测到。(通过 php 函数和变量)
有什么方法可以查明一个 php 脚本是直接访问还是包含在内。
if(__FILE__ != $_SERVER['SCRIPT_FILENAME']) {
// we're in an include
}
使用了 ceejayoz 的答案,但由于__FILE__
自动解析为真实路径,我在使用符号链接文件和路径时遇到了麻烦。所以我改用realpath()
函数$_SERVER['SCRIPT_FILENAME']
来解决两个路径到真正的路径来解决问题。
if(__FILE__ != realpath($_SERVER['SCRIPT_FILENAME'])) {
// we're in an include
}