2013-03-21 99 views
0

我想问什么之间的差异和./ ../在PHP

include('./config.php') 

include('../config.php') 

之间的区别:第二个进入一个目录,并将其从一层文件夹包括高。但是,一个点可以做什么Exacly?

编辑;谢谢大家为你解答。它让我的思绪更加明亮。我选择了关于主题的最多信息的答案(尤其是在PHP环境中)

+1

的'/'是当前文件夹。 – 2013-03-21 16:55:04

+0

因此包括('./ config.php')和include('config.php')做得完全一样吗? – Grzegorz 2013-03-21 16:57:13

+0

理论上他们应该,是的。 – 2013-03-21 16:57:46

回答

4

这是一个系统的东西,而不只是一个PHP的东西。

./表示当前目录。如果您列出* nix系统的内容,您将在顶部看到以下内容。

. 
../ 

顶一个(.)是一样的./意思是 “在这个目录”。因此,如果包含这样的文件:

include('./config.php') 

您正告诉PHP查看当前目录中的“config.php”。这是一样的

include('config.php') 

../显示,上面的目录或“父目录”

include('../config.php') 

这是告诉PHP去一个目录去寻找“config.php文件”。这些命令可以被捆绑,像这样:

../../config.php 

这告诉系统去上一级目录,再上去,然后找人“的config.php”

+0

嗯,现在想知道。在PHP中包含文件时,它包含与执行文件相关的文件,不包括在内。 基本上,当我有文件 测试/ index.php 和包括 测试/库/ config.php 和在这个文件我包含文件有或没有./它会在两种情况下查找测试/目录中的文件? – Grzegorz 2013-03-21 17:03:06

+0

@ Gacek,是的。包含文件时,就好像脚本的内容位于当前文件中一样。如果你需要相关的文件,使用'dirname(__ FILE __)' – UnholyRanger 2013-03-21 17:05:30

+0

我知道dirname(__ FILE__)。只是想知道./和没有区别。如果除了一些人写,有些不写,还有什么区别。 Mostyl我总是试图包括绝对路径,因为从CLI执行脚本的情况下,它不会喜欢文件,除非在正确的目录。 – Grzegorz 2013-03-21 17:08:22

11

在posix文件系统中.仅表示当前目录,而..表示父目录。

3

一个点指的是当前目录。

include('./config.php') 

是基本相同

include('config.php') 
+1

是否有**任何**区别? – 2013-03-21 16:59:04

+0

谢谢你,那基本上是我想知道的。只是把一个错误的问题,似乎:) – Grzegorz 2013-03-21 16:59:11

+0

@尼古拉斯皮克林看到这个答案:http://stackoverflow.com/a/579398/881229 – Kara 2013-03-21 23:37:35

1

.意味着当前目录

..意味着父目录

这是不是PHP,这是OS约定称为dot directory name

“DIRA \。\ DIRB”相当于“DIRA \ DIRB”

“DIRA \ DIRB \ .. \ DIRC”相当于“DIRA \ DIRC”

0
include('../config.php') :- parent directory 
include('./config.php') :- current directory 
0

./是当前目录

../是将当前一个

父目录回答你的问题,假设你不写.

include('/config.php')会在文件系统的根目录中包含'config.php'文件