您好,我第一次认真学习PHP,为自己创建一个示例脚本。它有一个基本结构,在我的根文件夹中我有:
所有页面都是通过从includes文件夹中获取header.php和footer.php来构成的,然后每个页面中间都有自己的内容。 header.php包含(以及基本的html和javascripts样式表的链接等)包括核心文件夹,如下所示:
现在使用index.php可以很好地工作,它提供了指向站点的3个不同部分,sitea,siteb和sitec的链接。
但是当您从文档根目录导航到/sites/sitea/index.php时,所有这些链接现在都已损坏。
在header.php部分中构建链接的最佳方法是什么,无论您在哪个文件夹,它们都是相对站点范围的?
答案 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');