获取父目录的相对路径

时间:2014-08-20 20:29:56

标签: php root relative-path

我有一个场景,我希望获得一个返回特定父目录的路径。这是一个示例文件夹strcuture([something]是一个文件夹)

index.php
[components]
    header.php
    footer.php
[pages]
    somePage.php
    [somePageSubPages]
        someSubPage.php

所以我的内容页面看起来像这样:

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

<!-- CONTENT STUFF -->

<?php
    include('components/footer.php');
?>

这适用于index.php,但不适用于somePage.phpsomeSubPage.php。我想要做的是创建一个函数,将路径返回到主目录,然后我可以将它添加到包含和其他东西:

$relPath = getPathToRoot($rootDirName);
include($relPath . 'components/header.php');

该函数只返回一个空字符串或../../

我考虑过使用__FILE__,然后只计算给定$ rootDirName和字符串end之间的/个字符。但是,我想问一下这是否是一种可靠的方式以及它在PHP中的表现。 (我不认真用PHP工作......)

2 个答案:

答案 0 :(得分:1)

您可以使用..进入父目录:

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

答案 1 :(得分:1)

我会确保您始终知道您网站的根目录,以便您可以从那里获取它。

要做到这一点,你至少可以采取两种方式:

  • 包含一个定义您的站点根目录的配置文件,并将该根目录添加到每个包含的内容中(如果是常量):
    include MY_SITE_ROOT . '/path/to/file.php';
  • 使用服务器变量实现相同的目标,例如:
    include $_SERVER['DOCUMENT_ROOT'] . '/path/to/file.php';