2012-07-28 174 views
0

在我的網站index.php位於/ director,然後我有幾個其他.php文件駐留在/ episodes/10 /(10是情節編號)。PHP包含和相對/絕對路徑不起作用

我在index.php中包含的路徑只是<?php include "includes/head.php"; ?>。這些路徑在插曲/ 10 /文件夾中的.php文件中不起作用。所以我做了路徑<?php include "../../includes/head.php"; ?>但無濟於事。我試圖通過使用<?php include "/includes/head.php"; ?>使它們全部絕對路徑,但是這也不起作用。

我在做什麼錯?

+1

允許使用'..'在包括路徑是有風險的,所以它不是可能在一些安全配置 – Basic 2012-07-28 22:49:26

+2

絕對路徑最好的。 '/ var/www/html/includes/head.php' – David 2012-07-28 22:51:38

+0

就像說的那樣,我試着簡單地使用「/」。如果我從我的電腦的根本上做到這一點,那麼一旦我將它推向現實,它就毫無價值。我不得不再次改變所有的路徑。 – 2012-07-28 22:57:26

回答

3

一個解決方案,將工作無論從哪個子目錄運行它:

include($_SERVER['DOCUMENT_ROOT'] . 'includes/head.php'); 
+0

我試過了,但它沒有做任何事情?我應該用路徑替換「DOCUMENT_ROOT」嗎?我使用MAMP在本地測試這個,然後推送到一個開發服務器,所以我不想改變路徑一堆。 – 2012-07-28 22:56:30

+0

不,你不需要替換任何東西,你可以在我的答案中複製粘貼該行,並且它可以在任何主機上正常工作(假設你的包含文件夾在你的web根目錄中) – Wouter 2012-07-28 22:58:25

+0

有趣。這在我的開發服務器上工作,但不是在本地。非常感謝。 任何想法爲什麼這不是本地運行MAMP? – 2012-07-28 23:01:25