2015-02-09 67 views
0

我想,包括我的header.php我創建到每一個頁面 & footer.php文件。到目前爲止,它一直在努力!包括PHP文件到一個網站頁面

一旦我創建了一個新目錄例如/ new-site-area - 當我創建一個新的php頁面並試圖包含header.php時,這個接口並沒有工作?

這是PHP的包括我使用,並且它的工作...

<?php include ("includes/header.php");?> 

這似乎只是儘快停止工作,我試圖把它列入到一個網頁,在/目錄。

例子:

www.mysite.com - 標題包括作品
www.mysite.com/new-directory/new-area - 頭包括不起作用

我可以」不要理解爲什麼它可以在我的網站根目錄上運行,但是不會在網頁位於我的網站的不同區域中。

如果這是一個不可修復的問題,有人可能會建議一個更好的方式將php文件包含到網站頁面!

謝謝!

+1

請給出一些代碼。 – 2015-02-09 16:02:42

+3

在打開'<?php'標記後立即在文件頂部添加錯誤報告 'error_reporting(E_ALL); ini_set('display_errors',1);'看看它是否產生任何東西。 – 2015-02-09 16:03:44

+0

它可能不起作用,因爲目錄引用不一樣。你永遠不應該硬編碼的目錄參考。 – Hozikimaru 2015-02-09 16:04:27

回答

0

如果您不想實現解決包含路徑的方法,請使用框架。有很多小型框架可以解決這個問題和其他許多問題。

1

嘗試include "../includes/header.php" - 最好是寫一些功能將包括它的權利,例如:

function load($file) { 
    return $_SERVER['DOCUMENT_ROOT']."/includes/$file"; 
} 

就用include(load("header.php"));

或者,如果你希望你的load()功能,支持多路徑,嘗試這樣的事情:

function load($file) { 
    $paths = array(
     "includes", 
     "some_other_dir/includes" 
    ); 
    foreach($paths as $path) { 
     if(file_exists($_SERVER['DOCUMENT_ROOT']."/$path/$file")) { 
      return $_SERVER['DOCUMENT_ROOT']."/$path/$file"; 
     } 
    } 
    trigger_error("File $file not found in any of paths", E_USER_ERROR); 
} 

那麼,如果該文件是在指定的任何路徑,我t將通過include(load("file.php"));包含,如果文件不存在,則會引發錯誤。

2

必須瀏覽到你的目錄與返回參數 「../」

例如,你的頁面

www.mysite.com/new-directory/ 

應該使用

<?php include ("../includes/header.php");?> 

爲2級文件夾像

www.mysite.com/new-directory/new-directory2 

它應該是

<?php include ("../../includes/header.php");?>