如何在PHP中获取相对文件路径

时间:2014-01-14 08:35:37

标签: php

结构

libs/functions.php
test/b.php
a.php
content.html

的functions.php

<?php
function showContent() {
    return file_get_contents('content.html');
}

a.php只会

<?php
include 'libs/functions.php';
echo showContent();

b.php

<?php
include '../libs/functions.php';
echo showContent();

content.html

test

a.php会显示 test 这个词,但是b.php在test文件夹中,因此文件路径会出错,如何解决呢?

4 个答案:

答案 0 :(得分:0)

请使用以下内容:

$basePath = dirname(__FILE__);

将此$basePath前缀用于任何include或require语句。

我希望这会有所帮助

答案 1 :(得分:0)

你正在从错误的方向思考这个问题。

相反,打开不同的php文件,创建一个文件index.phpincludes并使用您需要的脚本。这样,您将始终处于根目录,并且能够访问您需要的文件/功能。

另一种方法是克隆子目录中的目录,但我建议该选项。随着时间的推移,你会感到困惑。

答案 2 :(得分:0)

您可以使用文档根作为路径的开头,这样您就不用担心了。

$_SERVER['DOCUMENT_ROOT'].'/libs/functions.php'

$_SERVER['DOCUMENT_ROOT'].'/content.html'

答案 3 :(得分:0)

我不知道为什么你需要这样做,但一个解决方案是用你想要的文件夹中的所有php文件创建一个索引。

另一种解决方案可能是从基本路径设置常量路径。您可以使用$_SERVER['DOCUMENT_ROOT']获取网站的根目录。这是最快的解决方案,通过设置此常量,您将始终直接引用functions.php文件。