2014-05-14 21 views
0

我想使用php包括我的菜單導航爲我的網站,但一些頁面現在駐留在文件夾 - 我有頁面從各種文件夾內導航時的不良鏈接的典型問題。PHP包括,使用文檔根路徑代碼 - 但我卡 -

我以爲我需要爲我的php創建「路徑」,所以我研究並從「how to article」中找到了這些好的/簡單的代碼片段,它只是沒有給我足夠的信息給找出如何使用它。

(我用PHP包括所有居住在同一個根級就好了頁面,它的網頁,我迷路了,裏面的文件夾。)

請 - 如果有人能賜教...下面的兩個選項都沒有響應,如下所示 - 我應該在「DOCUMENT_ROOT」位置插入「localhost」一詞嗎?或'index.php'?或者我錯過了什麼?我已經在需要包含的頁面上的身體標記之間嘗試過每個人。 (我navigation.php是在我的文件夾包括)

option1: 

<?php 
$path = $_SERVER['DOCUMENT_ROOT']; 
$path .= "/includes/navigation.php"; 
include_once($path); 
?> 

-- OR-- option2: 

<?php include($_SERVER['DOCUMENT_ROOT'] . '/includes/navigation.php'; ?> 
+0

Is/includes /在DOCUMENT_ROOT目錄中?如果是這樣,那麼你的解決方案應該工作。請注意,DOCUMENT ROOT值在子目錄中不會更改,因此應適用於所有文件。 – vogomatix

+0

好問題 - includes文件夾位於本網站的根目錄中,但我想我剛剛意識到我的問題 - 我的電腦根目錄(在mamp服務器上)有幾個網站,所以我認爲我需要添加「elephant_mamp」文件夾到我的路徑。我一直在限制思考網站的特定路徑 - 而不是服務器特定的路徑。 – user3635480

+0

所以這就是我剛纔使用的原始問題中的代碼--- <?php $ path = $ _SERVER ['DOCUMENT_ROOT']; $ path。=「/elephant_mamp/includes/navigation.php」; include_once($ path); ?>謝謝@vogomatix所有的輸入,以幫助我找出我有限的想法。 – user3635480

回答

-1

試試這個

<?php include($_SERVER['HTTP_HOST'] . '/includes/navigation.php'; ?> 
+1

不正確:HTTP_HOST是URL而不是文件路徑 – vogomatix

-1

的問題是要傳遞的網址不是文件路徑。

您需要通過像C文件路徑:\ WWW \東西\文件名供應,或從包括路徑指定的目錄

+0

錯誤:DOCUMENT_ROOT是文件路徑,而不是URL – vogomatix

0

PHP股包括從文件的路徑了。閱讀the manual for more info

如果includes目錄是包含您的網站的目錄的子文件夾,則您使用$ _SERVER ['DOCUMENT_ROOT']將起作用。但是我會補充說,將一個PHP包含目錄放入DOCUMENT_ROOT目錄並不是一個好習慣,或者至少我不建議這樣做,除非您已考慮到安全問題,因爲它可能會無意中暴露諸如數據庫密碼等內容。

快速解決問題的方法是將包含目錄的路徑放入$ include_path變量中,並使用該變量並使用該變量並使用該變量

// don't forget trailing directory separator :-) 
$include_path = '/Put/the/full/path/here/'; 
include($include_path . 'navigation.php'); // also works for include_once, require etc 
+0

是的,這似乎工作!謝謝! – user3635480

+0

但是,當我發佈該網站時,是否必須重新進入「使用此包含代碼修改每個網頁 - 更改路徑」 - 以匹配真實服務器(而不是我的個人計算機路徑?) – user3635480

+0

這就是我用過的...... <?php $ include_path ='/ Applications/MAMP/htdocs/elephant_mamp/includes /'; include($ include_path。'navigation.php'); ?> – user3635480