/../*.php和* .php之间的区别

时间:2013-09-09 17:12:56

标签: php include-path

所以我解决了我解决的PHP代码问题,但我真的不知道它是如何工作的。

我尝试将其添加到每个文件

<?php include '/nav.php'; ?>

所以我只能有一个文件来编辑导航栏而不是整个php文件。

当我将该代码添加到另一个文件夹的文件(即.general/vision.php)时出现问题,我收到错误(找不到文件)。我虽然这是因为我只在网站的根目录上有'nav.php'文件。

所以,为了好玩,我将/general/vision.php文件的句子改为

<?php include '../nav.php'; ?>

它有效。我没有从root用户更改nav.php,而且工作正常。

我很高兴,但我不知道为什么。那个/../是如何工作的? 这是在PHP文档中列出的吗?

4 个答案:

答案 0 :(得分:5)

..是“up a directory”的操作系统术语。它不是特定于PHP的。

看看相对路径的概念......可能会有所启发。 Relative paths vs Absolute paths

答案 1 :(得分:4)

..指的是父目录。这是所有操作系统的标准配置。

答案 2 :(得分:1)

PHP是一种服务器端脚本语言,这意味着根目录/不是您网站的文档根目录,而是服务器上文件系统的根目录。

通过使用/开始路径,您将从根目录开始指定文件的绝对路径。您可以使用例如..来提升一个级别来构建相对于当前目录的路径。

您还可以使用PHP中的__DIR__常量构建绝对路径,该常量始终包含包含当前PHP文件的目录的完整绝对路径,例如include __DIR__ . '/../nav.php';

答案 3 :(得分:1)

虽然您通过在include路径中包含..(父目录)解决了问题,但最好包含这样的php文件:

 include $_SERVER['DOCUMENT_ROOT']."/nav.php";

然后,您可以将您的PHP文件保存在DOCUMENT_ROOT中的任何位置,并且仍然可以包含此nav.php文件。

PS :将常见的包含文件保持在DOCUMENT_ROOT之上是一种很好的做法,这样浏览器就无法直接访问这些文件。