我是 php 的新手,我正在尝试使用我的网站中的一些包含内容,但不太清楚如何使它们全部正常工作。我的网站结构如下
/ROOT/
Config.php
Index.php
/ADMINISTRATION/
Index.php
mustInclude.php
/USERS/
Index.php
Run Code Online (Sandbox Code Playgroud)
如果“mustInclude.php”包含“Config.php”并且 Index.php 包含“mustInclude.php”,则一切正常,但一旦我尝试将“mustInclude.php”包含到 /USERS/Index.php 中,它就会中断,因为“ MustIninclude.php”使用的路径与include '../config.php';/USERS/Index.php 的相对路径与 /ADMINISTRATION/Index.php 的相对路径不同
我不太确定在这里做什么。
目前这是在我的本地计算机上。使用$_SERVER['DOCUMENT_ROOT']会给我错误,因为它输出我的文件结构(/Users/James/Sites)而不是我的网络结构(http://localhost/mysite)
帮助?
我建议定义某种“全局基本路径”并从那里推导出其他路径。喜欢,
define('BASE_PATH', '/home/me/');
...
include(BASE_PATH . 'Config.php');
include(BASE_PATH . 'subdirectory/other.php');
Run Code Online (Sandbox Code Playgroud)
等等。这种(半)绝对路径比包含大量../s 的相对路径更脆弱。(并不是说相对路径有什么根本性的错误,但它们更难做到恰到好处,而且更容易破坏。如果/aincludeb/c和b/cinclude ../d/e,是相对于/b/还是相对于/,还是取决于我们是否开始from/a与直接调用b/c?我什至不知道。最好只使用绝对路径,它们既简单又明确:-)。