有什么区别
require("../classes/M8.php");
和
require("/../classes/H8.php");
包含路径将如何不同?
/..
是相对于服务器根目录的路径。
../
是相对于当前脚本文件夹的路径。
我看到有人要求提供更多信息。
如果您在服务器上的文件夹中,请说:
/usr/local/apache2/www/example.php
然后可以将 example.php 中的引用作为绝对路径,因此相对于服务器的根目录:/usr/local/apache2/hidden/credentials.php
或者可以使用相对于当前文件的路径访问相同的文件:../hidden/credentials.php。请注意,每组 ../ 都会将您的服务器文件夹结构中的目录移到更高的位置。
路径开头的A/
将指向根目录。这称为绝对路径。其他任何内容都与当前文件夹相关。这称为相对路径。
IBM 在这里描述了不同之处:
绝对路径名表示从 /(root) 目录向下的目录或文件的完整名称。无论您在文件系统中的哪个位置工作,您始终可以通过指定其绝对路径名来找到目录或文件。绝对路径名以斜杠 (/) 开头,该符号表示根目录。路径名 /A/D/9 是 9 的绝对路径名。第一个斜杠 (/) 代表 /(root) 目录,它是搜索的起始位置。路径名的其余部分将搜索指向 A,然后指向 D,最后指向 9。
与完整路径名不同,相对路径名基于当前工作目录指定目录或文件。对于相对路径名,您可以使用符号点 dot (..) 在文件系统层次结构中向上移动。点点 (..) 表示父目录。因为相对路径名指定从当前目录开始的路径,所以它们不以斜杠 (/) 开头。相对路径名用于指定当前目录中的文件名或文件系统中高于或低于当前目录层级的文件或目录的路径名。如果 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 */