我遇到嵌套包含问题。虽然我看到有一些类似的问题,但它们似乎没有帮助。
一般来说,我没有包含问题,但最近我一直在尝试新的东西,我无法让嵌套的包含工作。
一个解决方案:php nested include behavior
基本设置:
我实际上并没有写这样的路径(它是为了理解深度)。 这就是它在页面上的外观。
的index.php :
header.php :(标题包含在每个深度级别,除了/ resources /...)
index_alt.php :
index_auth.php :
在某些深度级别,头文件被接受,但包含嵌套的不会......
答案 0 :(得分:4)
假设文件系统看起来像这样..
/www
include/header.php
class/Login.class.php
class/Connection.class.php
resources/login/index_alt.php
resources/login/index_auth.php
index.php
这意味着
index.php: include(__DIR__ . '/include/header.php');
header.php: include(__DIR__ . '/../resources/login/index_alt.php');
index_alt.php: include(__DIR__ . '/index_auth.php');
等;见http://php.net/manual/en/language.constants.predefined.php
答案 1 :(得分:2)
而不是使用../ use dirname(__FILE__
)遍历目录树。此外,您可能需要include_once()或require_once()来避免其他潜在问题:
的index.php:
include('include/header.php');
的header.php:
include(dirname(dirname(__FILE__)) . '/resources/login/index_alt.php');
(请注意,dirname(__FILE__
)将返回当前目录,但dirname(dirname(__FILE__
))将返回父目录