如何包含需要绝对路径的PHP文件?

php
2022-08-30 07:41:14

我有一个如下目录结构;

脚本.php

inc/include1.php
inc/include2.php

对象/对象1.php
对象/对象2.php

肥皂/肥皂.php

现在,我在 和 中使用这些对象,我可以移动它们,但是出于特定原因,我希望目录结构像这样。当执行包含路径是,当执行它是,绝对路径工作,但如果我想将目录移动到其他位置,这是一个丑陋的解决方案。script.php/soap/soap.phpscript.phpinc/include.php/soap/soap.php../inc/mnt/webdev/[project name]/inc/include1.php...

那么有没有办法使用相对路径,或者有一种方法可以以编程方式生成?"/mnt/webdev/[project name]/"


答案 1

这应该有效

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

include "$root/inc/include1.php";

编辑:由澳大利亚维克添加的改进


答案 2

可以使用相对路径。尝试。这是一个PHP常量,它总是返回它所在的脚本的路径/文件名。因此,在 中,您可以执行以下操作:__FILE__soap.php

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

文件的完整路径和文件名。如果在包含中使用,则返回所包含文件的名称。从 PHP 4.0.2 开始,始终包含解析符号链接的绝对路径,而在旧版本中,它在某些情况下包含相对路径。(来源)__FILE__

另一种解决方案是在 httpd.conf 或 .htaccess 文件中设置包含路径


推荐