2011-01-24 51 views
0

因此,假如一个相对URI父计算相对文件

../file.ext 

请问父是

../ 

../../file.ext 

如果它的第一个,那么什么是父的

../ 

它是第二个,如果要重复调用一个假想的getParent方法,会终止一个潜在的无限循环?

+0

我很困惑。一个递归调用getParent()应该停止,当字符串是空的或当它没有更多的“/”...如果我正确理解你,但恐怕我有点困惑,至于什么你的问题确实如此。 :) – Teekin

回答

1

鉴于

/you/are/here/ 

然后../file.ext “当前目录” 将

/you/are/file.ext 

../../file.ext

/you/file.ext 

给出一个getParent()功能,它不得不当它达到文件系统的顶层时停止。这通过查看...的inode编号来检查是微不足道的。如果他们匹配,你就在树的顶端。根据定义,在树顶部做'..'将会再次返回树的顶部。

+0

谢谢马克!我不确定..在树顶。 – VLostBoy

+0

奖励积分 - 你能否告诉我是否适合由空字符串组成的URI(这是一个有效的URI参考显然是:http://en.wikipedia.org/wiki/Uniform_Resource_Identifier) /“?这是一个纯粹的语法问题btw – VLostBoy

+0

非常旧的Apache版本有问题,你可以在URL中指定足够的“../../ ..”并跳出webroot并开始在文件系统中移动。但是很久以前就被锁定了。现在,一旦你到达webroot,做'../'变成空操作,Apache将webroot的顶部视为与文件系统的顶部相同。 'example.com/?a = b'没有问题,它只会使用位于webroot中的默认文档(index.html/index.php等)。 –