gpt4 book ai didi

PHP 获取包含文件的文件目录

转载 作者:行者123 更新时间:2023-12-04 16:49:50 25 4
gpt4 key购买 nike

我有以下 PHP 文件结构:

dir0
dirA
dirA.1
dirA.1.1
fileA.php : dirname(__FILE__).'/docs';
dirA.2
...
dirB
fileB.php: include_once("../dirA/dirA.1/dirA.1.1/fileA.php");
dirC
fileC.php: include_once("../dirA/dirA.1/dirA.1.1/fileA.php");

在包含的 fileA.php 中,我使用 dirname(__FILE__)

如果我直接调用 fileA.php 的函数,我会得到当前路径。但是,如果我在 fileB.phpfileC.php 中调用它(包含后),我会得到错误的路径,...等等!

如何获取包含文件的目录?

注意: dir0(root) 的名称可能会改变,所以我不想为这些路径使用静态字符串!

最佳答案

你不会误入歧途。

include 使被调用文件成为调用它的脚本的一部分,但它不会更改 PHP 指向的路径。因此,如果您从 dirB 调用 fileA,PHP 仍在 dirB 中。

但是你知道 dirA(否则你不能包含 fileA),所以 chdir("../dirA/dirA.1/dirA.1.1/") 会将 PHP 指向 dirA,甚至来自文件 B 或文件 C。

您可以考虑从 dir0 开始工作。使用 dirB/fileB.php 调用 fileB 并使用 include "dirA/dirA.1/dirA.1.1/fileA.php" 包含 fileA。在那种情况下,您始终知道自己在树中的位置:在 dir0 中。

编辑我错了。如果从包含的文件 A 中调用 dirname(__FILE__);,它会返回文件 A 的路径。所以你在 fileA 的顶部要做的就是:

$mypath=dirname(__FILE__);
function myfunction($path){
echo $path;
}

然后在 fileB 中传递 $mypath 时调用你的函数:

 myfunction($mypath);

请注意,您可能需要对斜杠和反斜杠进行一些调整,具体取决于您的服务器运行的系统。

关于PHP 获取包含文件的文件目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23105966/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com