PHP包含链接

时间:2013-03-26 23:19:55

标签: php html html5

您好,我第一次认真学习PHP,为自己创建一个示例脚本。它有一个基本结构,在我的根文件夹中我有:

  • 的index.php
  • 核心文件夹(保存我的大部分php函数文件)
  • 包括(持有我的header.php和footer.php)
  • 网站 - (网站还有3个文件夹网站A,B,C)
  • CSS
  • JS​​

所有页面都是通过从includes文件夹中获取header.php和footer.php来构成的,然后每个页面中间都有自己的内容。 header.php包含(以及基本的html和javascripts样式表的链接等)包括核心文件夹,如下所示:

  • include_once'/ core/connect.php';

现在使用index.php可以很好地工作,它提供了指向站点的3个不同部分,sitea,siteb和sitec的链接。

但是当您从文档根目录导航到/sites/sitea/index.php时,所有这些链接现在都已损坏。

在header.php部分中构建链接的最佳方法是什么,无论您在哪个文件夹,它们都是相对站点范围的?

3 个答案:

答案 0 :(得分:1)

这背后的想法是每个进程只有一个文件。

所以通过index.php处理所有页面

index.php将包含,例如,

require('header.php');
include('content.php');
require('footer.php');

这样,如果您的内容没有显示,它就不会破坏网站。

您的索引始终从同一路径加载,因此页眉/页脚不会更改。只是内容。

答案 1 :(得分:1)

当你包括你想要使用真实路径,而不是相对路径......

require_once ($_SERVER['DOCUMENT_ROOT'].'/includes/header.php');
/* something happens here */
require_once ($_SERVER['DOCUMENT_ROOT'].'/includes/footer.php');

答案 2 :(得分:0)

最好的方法是始终在任何地方使用物理路径 - 这样每个包含其他包含include的页面的页面都不会中断:

PHP 5.2及以下版本:

require(dirname(__FILE__) . '/core/connect.php');

PHP 5.3及以上

require(__DIR__ . '/core/connect.php');