2013-06-24 222 views
0

我在根/ lib中包含header_sub.php的header.php位於同一目錄中。在根文件通常可以直接包括他們這段代碼:無法更改當前工作目錄

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不會正確包含。

有沒有辦法在不修改它們的情況下包含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(),它仍包括這根/博客/ lib目錄後根目錄......

+0

嘗試include_once( '../的lib/header.php文件');如果博客是根目錄中的子目錄。 –

+0

請注意,您沒有正確傳遞路徑:'include_once(../'lib/header.php'); '應該是'include_once('../ lib/header.php'); ' –

回答

0

使用include_once('/ lib/header.php');

+0

問題依然存在... – Andrew

0

嘗試這樣的:

$oldcwd = getcwd(); // Save the old working directory 
chdir($_SERVER['DOCUMENT_ROOT']); 
include_once('lib/header.php'); 
chdir($oldcwd);  // Go back to the old working directory