1

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

我已经将它实施到我的网站中,但我遇到了一些问题。

我的组织结构是将每个页面放入自己的文件夹中。

所以我在根目录中有主要的 index.html 以及 CSS 和 PHP 头文件。

然后我将其他页面放在他们自己的文件夹中,这样我就可以摆脱 html/php 扩展名。

现在当我把

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

进入每个页面,链接都被破坏了,因为每个页面都需要不同的级别来访问根目录中的 PHP 文件。有些是 ./ 其他 ../ 或 ../../

我现在找到了一个修复方法,即使用完整路径名:

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

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

我还考虑将标头 PHP 放在每个目录中,但我认为这违背了轻松编辑 1 个文件以全部更改它们的目的。

另一种想法是将所有内容都放在一个目录中,但我不想这样做。

那么我错过了什么?

谢谢。

4

3 回答 3

8

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

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

然后他们在包含他们的文件时使用它:

<?php include(DOC_ROOT . '/includes/header.php'); ?>
于 2013-03-30T16:24:36.780 回答
4

制作一个变量($root)或其他东西并使用 PHP 的realpath().

然后执行以下操作:

<?php include ($root . '/includes/header.php'); ?>
于 2013-03-30T16:23:40.497 回答
3

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

define("MY_WEB_DIR", '/var/www/html');
include(MY_WEB_DIR . '/includes/header.php');
于 2013-03-30T16:28:49.577 回答