2013-03-26 84 views
0

你好我正在第一次认真的去用PHP为我的自己创建一个示例脚本。它的基本结构,在我的根文件夹,我有:PHP包括链接

  • 的index.php
  • 核心文件夹(持有我的大多数PHP函数文件)
  • 包括(持有我的header.php和footer.php )
  • 站点 - (位点3个具有更多的文件夹的网站A,B,C)
  • CSS
  • JS

甲通过从includes文件夹中获取header.php和footer.php来构建页面,然后每个页面都有自己的内容。所述的header.php含有(以及基本的HTML和链接Javascript角样式表ECT)从核心文件夹包括像这样:

  • include_once“/core/connect.php”;

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

但是,当你浏览文档根目录来说/sites/sitea/index.php所有这些链接现在被打破。

什么是最好的方式去建立在header.php部分的链接,所以他们是相对的网站广无论你在哪个文件夹?

+0

确保有一个领先的'/'。 – MichaelRushton 2013-03-26 23:22:12

+0

嗨迈克尔是的所有链接上都有一个斜杠 – twigg 2013-03-26 23:23:43

+0

您是否收到错误消息? – MichaelRushton 2013-03-26 23:25:43

回答

1

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

所以处理通过的index.php

index.php文件将包含所有页面,例如,

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

这种方式,它不会破坏网站,如果您的内容不显示。

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

1

当你包括你想用一个真实的路径,而不是相对路径...

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

最好的办法是要始终使用物理路径无论你在哪里 - 这样每一个页面包括其他页面,包括将不会打破:

PHP 5.2,下:

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

PHP 5.3及以上

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