2015-02-09 71 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");?>