在 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 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