2012-02-16 72 views
0

我無法學習PHP包含的相對路徑。如何使用PHP的相對路徑包含?

嘗試在index.php中獲取包含語句,以便在_assets兩個文件夾中的includes文件夾中查找footer.php。

從我讀到這裏的話,我認爲這將是:

include('../../_assets/includes/footer.php'); 

我寧願使用絕對路徑,但不能得到這工作的。


找出絕對URL路徑。

echo file_get_contents('http://www.mysite.com/_assets/includes/footer.php'); 

完美地工作。

+0

從你的index.php相對路徑是因爲你猜'../../_ assets/includes/footer.php',我不明白爲什麼不應該工作?嘗試在您的index.php中使用'echo getcwd();'來查看當前的工作目錄。 – Cyclonecode 2012-02-16 06:44:01

+1

** WHOA **。通過獲取他們的URL,*不*回顯*本地*文件。您正在調度一個不必要的HTTP請求。最壞的情況是愚蠢的,而且極其浪費時間和資源。 – Charles 2012-02-16 09:19:38

+0

@Charles,感謝您的輸入。我知道這不是最有效的做事方式。我是一個新手,並且甚至感到驚訝,認爲回聲被用來顯示文本。該網站有點令人困惑,基本上有三個網站在一個,我需要一箇中央文件夾的所有CSS和包含文件和一個很好的方式來鏈接到他們從整個網站,也能夠使網站在本地和工作服務器。你能提出更好的方法嗎? – Evo2 2012-02-16 14:16:56

回答

2

要使用絕對路徑,我建議你定義一個常量,它指向您的文檔根目錄,如:

define('PATH_SITE', '/path/to/www/'); 

或Windows:

define('PATH_SITE', 'C:\\path\\to\\www\\'); 

隨後使用該路徑來獲得正確的包括:

include_once(PATH_SITE . 'assets/whatever.php'); 

或者,您可以使用內置的PHP變量$_SERVER['DOCUMENT_ROOT'],但我已經看到它在Windows服務器上是片狀的

+0

所以我把定義放在根文件夾中的php文件中? – Evo2 2012-02-16 06:51:35

+0

你把它放在你開始第一個包含的文件(也許是'index.php'),這樣它將在所有後續包含 – konsolenfreddy 2012-02-16 06:57:57