如何使用根目录下的PHP文件与其他页面的相对路径


How do I use a PHP file in root directory with relative paths for other pages?

前几天我问过这样一个问题:如何从一个位置调用DIV内的HTML ?

我已经把它实现到我的网站,但我有一些问题。

我的组织结构是把每一页放到它自己的文件夹里。

所以我有主index.html在根和CSS和PHP头文件。

然后我有其他页面在他们自己的文件夹,所以我可以摆脱html/php扩展。

现在当我输入

<?php include('../includes/header.php'); ?>

放到每个页面中,链接是断开的,因为每个页面都需要不同的级别来访问根目录中的PHP文件。有些人会/其他人…/或…/…/

我已经找到了一个修复现在是使用完整的路径名:

http://mywebsite.com/trails/等等。

但我有一种感觉,有更好的方法来做到这一点。

我也想过把头文件PHP放在每个目录中,但我认为这违背了轻松编辑一个文件来更改它们的目的。

另一个想法是把所有的东西放在一个目录,但我不想这样做。

我错过了什么?

谢谢。

许多站点都有某种配置/引导文件,其中放置一个变量(实际上,通常是常量),用于定义站点的文档根目录:

defined('DOC_ROOT') || define('DOC_ROOT', __DIR__);

然后在包含文件时使用:

<?php include(DOC_ROOT . '/includes/header.php'); ?>

创建一个变量($root)或其他东西,并使用PHP的realpath()获得其真实路径。

然后像这样做:

<?php include ($root . '/includes/header.php'); ?>

您可以使用预定义的变量__DIR____FILE__或自定义:

define("MY_WEB_DIR", '/var/www/html');
include(MY_WEB_DIR . '/includes/header.php');