我的一些页面上包含了几个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";