PHP包含文件作为一个绝对路径-这是正确的吗


PHP include file as an absolute path - is this correct?

我的一些页面上包含了几个php实例(通常是页脚标记和页眉等),我宁愿使用绝对的php路径,而不是../../我使用的相对路径。

我以为这会奏效:

<?php include
include(dirname(__FILE__) . "/dir/script_name.php");
?>
  • 我的问题是:/dir/script_name.php是确切的完整路径吗?如果是,__FILE__ ?的意义何在

函数dirname()从路径中删除文件名,并为我们提供文件所在目录的绝对路径-对吗?那么,如果我已经给出了完整的路径-,为什么还要麻烦函数dirname()呢?

希望这是有意义的

__FILE__是php魔术变量,它是当前执行文件(出现的位置)的完整路径,dirname()从中删除文件名,从而为您提供当前脚本所在文件夹的完整路径。

这实际上只是一个破解,因为5.3中才添加了另一个神奇的变量__DIR__(当前执行脚本的目录),因此dirname(__FILE__)是早期版本中实现相同功能的最简单方法。

函数dirname()从路径中删除文件名,并为我们提供文件所在目录的绝对路径-对吗?

是的,这是正确的。可以使用的路径可以是相对路径,也可以是完整的系统路径。

那么,如果我已经给出了完整的路径-,为什么还要麻烦函数dirname()呢?

如果您对完整的文件系统路径进行硬编码,那么您的应用程序将变得不那么可移植;你的webroot目录与我的不同。这通常就是为什么您会看到这样生成路径的代码。

我个人会将PHP自动加载器视为管理类包含的更灵活的替代方案。

这一切都取决于您想要什么。从最严格的意义上讲,您所描述的路径与您正在执行的文件是"相对的"。对于真正的绝对路径,只需确保文件名以"/"开头即可。像这样:

include "/path/to/file/script.php";