父目录和PHP

时间:2011-08-08 21:51:05

标签: php directory parent-child

我真的希望有一个简单的解决方案。

<?php include("header.php"); ?>

假设我的根文件夹中有一个名为 header.php 的php标题。在该标题中,有一个返回主页的链接, main.php ,main.php也位于根目录上。到目前为止没问题。这是 header.php 的样子。简单的东西,对吗?

<link href="style.css" rel="stylesheet" type="text/css" />

<div id="headerwrap">

        <div id="linkbox">
            <a href="main.php"><img src="images/mainlogo.png" /></a>
        </div><!-- End linkbox -->

</div>

但是,假设我在子目录中有其他页面。 Subpage.php 位于根目录的子目录中,因此必须回顾根目录以获取包含的 header.php

<?php include("../header.php"); ?>

这不是什么大问题,除了 header.php 链接回 main.php 以及样式表,其中没有一个在* subpage.php 的目录,因此当子页面上的某人试图通过标题中的链接返回Main时会导致错误。

我只是希望有一种简单的方法来完成这项工作,而且我不必复制并将所有包含重定向到每个子目录中。此外,有太多页面无法真正合理地将它们全部包含在根目录中。对不起,如果这个答案发布在别处;我看起来并且不知道我在寻找什么。谢谢你的帮助。希望所有这些都有意义。

5 个答案:

答案 0 :(得分:1)

你可以在header.php中硬编码main.php的路径:

<a href="http://website.com/main.php"><img src="http://website.com/images/mainlogo.png" /></a>

答案 1 :(得分:1)

与php prob相反,这似乎是一个HTML问题..

您的链接应该是与前面的/即

的相对链接
<a href="/main.php"> Text </a>

而不是

<a href="main.php"> Text </a>

答案 2 :(得分:0)

如何使用绝对链接。 header.php绝对应该引用main.php,那么应该没有麻烦:

<?php include($_SERVER['DOCUMENT_ROOT'].'/header.php"); ?>

答案 3 :(得分:0)

您可以使用base html标记:

<base href="http://yoursite.com/" />

通过这种方式,您可以将该网址用作所有链接/样式表/图像的基础,如果它们位于子目录中,则无需担心。

答案 4 :(得分:0)

最好的办法是养成使用

的习惯
$_SERVER['DOCUMENT_ROOT']

这样你就不会混淆你所在的目录等等。

所以包括你的标题就像这样简单:

include $_SERVER['DOCUMENT_ROOT'] . "/header.php";