对于在php中更改文件夹,/../。/。/和../之间有什么区别?

时间:2016-08-22 19:41:30

标签: php

更改文件夹有什么区别

/../
./../
../?

除非是include "/../filename.php";,否则其中一些包括不会工作,而其他人可以使用include "../filename.php;"正常工作。

3 个答案:

答案 0 :(得分:3)

路径101:

每个正在运行的进程都有一个“工作目录”。这是文件操作中的任何“相对”路径将来自的地方。

./          - current directory (the "working" directory)
../         - parent directory
../..       - grandparent directory
../foo      - brother/sister directory "foo"
../../foo   - uncle/aunt directory "foo"

还有ABSOLUTE路径,它们始于所有目录的最终祖先 - 文件系统的根目录。在Unix-ish系统上,在Windows系统上是/,这是一个驱动器号,例如C:\

/            - ultimate starting directory - root of file system
/foo         - immediate child directory
/foo/bar     - grandchild directory
/foo/bar/baz - great-grandchild directory.

结合这些:

绝对+相对:

/foo/bar/../baz

   1. `/`     - start at root /
   2. `/foo`  - descend into 'foo' (now at `/foo`)
   3. `/bar`  - descent into 'bar' (now at `/foo/bar`)
   4. '../`   - go back a level  (back at `/foo`)
   5  `/baz   - descend into  'baz` (now at `/foo/baz`)

相对

../foo/bar/../baz

  1. Start in current directory `./`
  2. `../` - ascend to parent (now at `../`)
  3. `foo/` - descend into sibling `foo` (now at `../foo`)
  4. `bar/` - descend into niece/nephew `bar` (now at `../foo/bar`)
  5. `../` - ascend back to sibling foo (now at `../foo`)
  6. `baz/` - descend into niece/nephew 'bar' (now at `../foo/baz`)

基本上,以/c:\开头的任何路径都是绝对路径,任何以.开头的路径都是相对路径。 每个目录包含...,它们只是指向自身(.)及其父(..)的指针。父母在那里,所以你不需要知道你的祖先目录的名称,你只需要知道..

由于目录包含对自己的引用,./././././.之类的内容只是说“在当前目录中”的一种非常冗余的方式。

因此../foo/./bar../foo/bar没有区别,因为.就在其中,只是意味着“留在同一个地方”。

答案 1 :(得分:1)

  1. ../--指的是当前目录的前一个目录
  2. ../../--指当前目录的前两次
  3. 依旧......

答案 2 :(得分:0)

不同之处在于路径开始的位置,即与文件位于同一文件夹中或文件系统的根目录。

/../ 将从您的硬盘根

开始路径

./../ ../ 将从文件的当前目录开始。