很抱歉再次询问,但我真的需要帮助。我在root / lib中有header.php,它在同一目录中包含header_sub.php。通常,root中的文件可以通过以下代码直接包含它们:
include_once('lib/header.php');
但现在我在子目录/博客中有example.php,如果我使用这些
include_once(../'lib/header.php'); or
include_once($_SERVER['DOCUMENT_ROOT'].'/lib/header.php'); or
include_once(dirname(__FILE__).'/lib/header.php');
header_sub.php将无法正确包含。</ p>
有没有办法在不修改它们的情况下包含header.php和header_sub.php?
有人建议使用这些:
$oldcwd = getcwd(); // Save the old working directory
chdir("../"); // Moves up a folder, so from /blog to /
include("header.php"); // Include the file with the working directory as if the header file were being loaded directly, from it's folder
chdir($oldcwd); // Set the working directory back to before
然而,即使我可以看到当前的url是chdir()之后的根目录,它仍然包含这个root / blog / lib ......
答案 0 :(得分:2)
您需要的文件路径取决于您是否正在调用该文件。 例子:
/root
中的/root
调用文件 - &gt; include_once('header.php');
在/root
中的/root/lib
调用文件 - &gt; include_once('lib/header.php');
在/root/lib
中的/root
调用文件 - &gt; include_once('../header.php');
在/root/blog
中的/root/lib
调用文件 - &gt; include_once(../lib/'header.php');
在/root/blog/css
中的/root/lib
调用文件 - &gt; include_once(../../lib/'header.php');
如果您喜欢这样,所有路径都是相对的,您可以更改根文件夹,一切仍然有效。
另一种选择是你有一个名为“common.php”或“include.php”的文件,你定义了一些文件夹的路径。如果您的站点目录有许多子文件夹,这将非常有用。