PHP包括“../”vs“/../”

时间:2013-10-15 12:34:44

标签: php

之间有什么区别
require("../classes/M8.php");

require("/../classes/H8.php");

如何包含路径会有所不同?

2 个答案:

答案 0 :(得分:14)

/..是相对于服务器根目录的路径 ../是相对于当前脚本文件夹的路径。

我看到了有关更多信息的请求。

如果您在服务器上的文件夹中,请说:

/usr/local/apache2/www/example.php

然后 example.php中的引用可以作为绝对路径,因此相对于服务器的根目录:/usr/local/apache2/hidden/credentials.php

或者可以使用相对于当前文件的路径访问同一文件:../ hidden /credentials.php。请注意,每组../将在您的服务器文件夹结构中向上移动一个目录。

答案 1 :(得分:4)

路径开头的/将指向根目录。这被称为绝对路径。其他任何东西都与当前文件夹相关。这被称为相对路径。

IBM描述了差异here

  

绝对路径名表示/(根)目录中向下的目录或文件的完整名称。无论您在文件系统中的哪个位置工作,您始终可以通过指定其绝对路径名来查找目录或文件。绝对路径名以斜杠(/)开头,该符号表示根目录。路径名/ A / D / 9是9的绝对路径名。第一个斜杠(/)表示/(根)目录,它是搜索的起始位置。路径名的其余部分将搜索指向A,然后指向D,最后指向9.

     

与完整路径名不同,相对路径名指定基于当前工作目录的目录或文件。对于相对路径名,可以使用符号点(..)在文件系统层次结构中向上移动。点点(..)表示父目录。由于相对路径名指定了从当前目录开始的路径,因此它们不以斜杠(/)开头。相对路径名用于指定当前目录中文件的名称,或者指定文件系统中当前目录级别上方或下方的文件或目录的路径名。如果D是当前目录,则访问10的相对路径名是F / 10。但是,绝对路径名始终为/ A / D / F / 10。此外,访问3的相对路径名是../../ B / 3。

想象一下,您正在使用此结构,并且正在使用MyScript.php

Home
  -- Foo
     -- Example.php
  -- Bar
     -- Scripts
         -- MyScript.php

如果您想在Example.php文件夹中加入Foo,可以指定:

../../Foo/Example.php /* Relative path: ..Bar/..Home (Root)/Foo/Example.php */

或者:

/Foo/Example.php /* Absolute path: Home (Root)/Foo.Example.php */