在 PHP 中包含绝对路径和相对路径

Olorunfemi Akinlua 2023年1月30日
  1. PHP 中的绝对路径和相对路径
  2. 使用 include()dirname() 在 PHP 中包含绝对和相对路径
在 PHP 中包含绝对路径和相对路径

无论是在服务器上还是在本地 PC 上,执行 PHP 程序的路径都会有所不同并且很重要。如果你在错误的目录中运行,那么了解如何使用这两种类型的路径(相对路径和绝对路径)非常重要。

尽管两者都很重要,但我们可能经常使用绝对路径,尤其是在整个 PHP 应用程序的上下文中,而不是绝对路径。

本文将解释如何在 PHP 中使用或包含绝对路径和相对路径。

PHP 中的绝对路径和相对路径

无论是在 PHP 应用程序中还是在我们的本地计算机中,绝对路径都是相对于系统根目录的文件或目录位置。但是,相对路径指向文件系统中相对于当前目录的特定位置。

这是 Unix 或 Linux 上的绝对路径:

/home/user/devs

在 Windows PC 上,绝对路径如下所示:

C:\AMD\Chipset_Software

但是,Linux 路径系统通常​​用于大多数 PHP 服务器。

然而,相对路径可能看起来像这样:

../devs

上面的代码片段将代表 devs 目录的父目录,你可以在 Windows 上使用相同的 ..。假设你在 C:\Users\HP\Documents 目录中;你可以通过以下命令转到 HP 的子目录下载目录:

cd ..\Downloads

使用 include()dirname() 在 PHP 中包含绝对和相对路径

要访问绝对路径和相对路径,我们需要 dirname() 函数和一个名为 __FILE__ 的神奇常量。神奇的常量 __FILE__ 返回正在执行的 PHP 文件的完整路径和名称。

dirname() 函数返回父目录的路径。当我们一起使用 __FILE__dirname() 函数时,我们可以获得我们正在处理的文件的绝对根路径,假设我们通过 include 关键字与之交互的文件位于同一目录中.

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

dirname(__FILE__) 的结果是:

/home/runner/ScholarlyOvalFirewall

但是,假设我们与之交互的 PHP 文件位于当前工作目录的父目录中。在这种情况下,我们可以使用 __DIR__ 常量,因为它返回当前文件的目录,不带斜杠。

include(dirname(__DIR__).'/functions.php');

dirname(__FILE__) 的结果是:

/home/runner/

比如说,我们打算只使用相对路径,我们可以通过创建以下函数来实现:

function relativepath($to){
    $a=explode("/",dirname(__FILE__));
    $index= array_search("$to",$a);
    $str="";
    for ($i = 0; $i < count($a)-$index-2; $i++) {
        $str.= "../";
    }
    return $str;
    }

$st = relativepath('main.php');
echo $st;

该函数的参数是 PHP 文件的名称,它的工作原理是通过 / 符号将绝对路径字符串分解为一个数组并搜索指定的 PHP 文件。之后,../ 系列被附加到 $str 变量中,为我们提供到根的相对路径。

此外,我们可以使用 dirname() 函数、define() 函数和任何神奇的常量 __DIR____FILE__ 来定义根路径,具体取决于你的需要。

define('ROOT_PATH', dirname(__DIR__) . '/');

ROOT_PATH 现在是 /home/runner

Olorunfemi Akinlua avatar Olorunfemi Akinlua avatar

Olorunfemi is a lover of technology and computers. In addition, I write technology and coding content for developers and hobbyists. When not working, I learn to design, among other things.

LinkedIn