你好,我有我的第一个认真去用PHP为我自己创建一个示例脚本。它有一个基本的结构,在我的根文件夹中我有:
- index . php
- 核心文件夹(保存我的大部分php函数文件)
- 包含(包含我的header.php和footer.php)
- sites - (sites有3个文件夹site A, B, C) CSS
- js
所有页面都是由include文件夹中的header.php和footer.php组成的,然后每个页面中间都有自己的内容。header.php包含(以及基本的html和链接到javascript样式表等)包括从核心文件夹如下:
- include_once/核心/connect.php,
现在这些都工作得很好,使用index.php提供链接到网站的3个不同部分,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');
最好的方法是始终使用物理路径,无论您在哪里-这样每个包含其他包含页面的页面都不会中断:
require(dirname(__FILE__) . '/core/connect.php');
PHP 5.3及以上
require(__DIR__ . '/core/connect.php');