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

时间:2013-12-13 19:32:17

标签: php

我在我的一些页面上有几个php包含的例子(通常的内容如页脚标记和标题等)而Id使用绝对的php路径而不是我正在使用的../../相对路径。

我认为这样可行:

<?php include
include(dirname(__FILE__) . "/dir/script_name.php");
?>
  • 我的问题是:是/dir/script_name.php - 确切的完整路径,如果是,那么__FILE__ ?
  • 的重点是什么

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

希望有意义

3 个答案:

答案 0 :(得分:0)

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

它实际上只是一个黑客,因为另一个魔术变量__DIR__(当前正在执行的脚本的目录)仅在5.3中添加,因此dirname(__FILE__)是实现同样事情的最简单方法在早期版本中。

答案 1 :(得分:0)

  

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

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

  

如果我已经提供了完整的路径,为什么还要使用函数dirname()呢?

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

我会亲自调查PHP autoloader作为管理课程包含的更灵活的替代方案。

答案 2 :(得分:0)

这完全取决于你想要什么。从最严格的意义上讲,您描述的路径与您正在执行的文件“相对”。对于真正的绝对路径,只需确保文件名以“/”开头。 像这样:

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