0

当我包含这样的文件时:include("/testsitedir/include/subdir/inc.php"); 在文件夹中命名this.php的文件上testsitedir,我得到了典型的failed to open stream: No such file or directory in ...\testsitedir\this.php错误。

但是,当我编写一个简单的 HTML 锚标记时:<a href="/testsitedir/include/subdir/inc.php">Test Link</a>(URL 与包含的相同)浏览器会自动为我解析 URL,并知道它/表示我的站点根目录。

那么,如何让我的包含以与 HTML 锚标记相同的方式解析 URL?

为了更好地理解,这就是我想要做的。我有一个头文件位于content站点根目录中名为的子目录中。我试图弄清楚如何使用相同的 URL 在每个文件中包含标题。我的方法是只使用头文件的绝对 URL。这已成为一个问题的原因是因为我希望能够使用单个CONSTANT. 此外,站点的根目录并不总是服务器的根目录。因此,当我想将站点放在服务器上的子目录中时,我会www.example.com/view/site/siteroot/定义一个常量并包含任何文件,但包含无法识别SITE_ROOT/view/site/siterootinclude(SITE_ROOT."/includes/file.php);/正斜杠作为站点根分隔符。url_include我打算使用实际的站点名称,但出于安全原因我不想启用。

4

1 回答 1

1

使用DOCUMENT_ROOTPHP 中定义的变量:

include($_SERVER['DOCUMENT_ROOT'] . "/testsitedir/include/subdir/inc.php");

文档中,变量包含:

当前脚本在其下执行的文档根目录,如服务器的配置文件中所定义。

于 2013-01-21T18:19:01.160 回答