PHP获取文件绝对路径的方法

回答 3 浏览 10.6万 2016-11-03

有没有办法在将文件包含在另一个脚本中时获取文件的绝对路径?

因此,我尝试在文件夹 B 中包含文件夹 A 中的文件,但它一直尝试引用文件夹 B 的位置。

我尝试过dirname$SERVER['PHP_SELF']cwd(),但它们仍然返回相对路径。

A. L 提问于2016-11-03
可能与 stackoverflow.com/questions/3952590/… 重复user6360214 2016-11-03
试试这个 echo $_SERVER["DOCUMENT_ROOT"];JYoThI 2016-11-03
@SuperCoolHandsomeGelBoy 不,这只给了我/var/www/html。我的文件嵌套在另外几个文件夹中。A. L 2016-11-03
3 个回答
#1楼 已采纳
得票数 51

你可以这样尝试

include dirname(__FILE__).'/../yourfile.php';

从 PHP 5.3.0 开始,您还可以使用魔术常量 __DIR__ 更多信息在文档中

另一种方法是

$rootDir = realpath($_SERVER["DOCUMENT_ROOT"]);

include "$rootDir/yourfile.php";
S.I. 提问于2016-11-03
+1!这让我想到了这条(常见?)行:$base_dr = basename(__DIR__);(结构顶部的目录以某种方式驱动业务逻辑)。WEBjuju 2018-07-26
由于某些奇怪的原因 $rootDir = realpath($_SERVER["DOCUMENT_ROOT"] .'/../yourfile.php' ); 不起作用user1986815 2021-09-27
#2楼
得票数 16

__FILE__

这是正在执行的文件的绝对路径。

简单的用法示例:

echo __FILE__;

echo "This file is: " . __FILE__;

WEBjuju 提问于2016-11-03
WEBjuju 修改于2022-07-11
这个比较简单易记Billal Begueradj 2019-10-30
#3楼
得票数 2

如果您需要真实路径,可以使用 SplFileInfo。

$path = new SplFileInfo(__FILE__);
echo 'The real path is '.$path->getRealPath();
Anik Anwar 提问于2020-03-31
标签
php