PHP包括链接
问题描述:
你好我正在第一次认真的去用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部分的链接,所以他们是相对的网站广无论你在哪个文件夹?
答
背后的想法是,你只有一个文件的每个进程。
所以处理通过的index.php
index.php文件将包含所有页面,例如,
require('header.php');
include('content.php');
require('footer.php');
这种方式,它不会破坏网站,如果您的内容不显示。
您的索引始终从同一路径加载,因此页眉/页脚不会更改。只是内容。
答
当你包括你想用一个真实的路径,而不是相对路径...
require_once ($_SERVER['DOCUMENT_ROOT'].'/includes/header.php');
/* something happens here */
require_once ($_SERVER['DOCUMENT_ROOT'].'/includes/footer.php');
答
最好的办法是要始终使用物理路径无论你在哪里 - 这样每一个页面包括其他页面,包括将不会打破:
PHP 5.2,下:
require(dirname(__FILE__) . '/core/connect.php');
PHP 5.3及以上
require(__DIR__ . '/core/connect.php');
确保有一个领先的'/'。 – MichaelRushton 2013-03-26 23:22:12
嗨迈克尔是的所有链接上都有一个斜杠 – twigg 2013-03-26 23:23:43
您是否收到错误消息? – MichaelRushton 2013-03-26 23:25:43