PHP:is_dir()用于诸如“./folder”之类的文件夹返回false,除非我将它们指定为“../folder”

时间:2012-02-05 23:00:23

标签: php filesystems

我网站的层次结构如下:

/
/webroot/
/webroot/index.php
/webroot/images/foo.jpg

我没有/的写入权限,但我在/webroot内做任何事情。
现在在index.php中说我有以下任何一个命令:

var_dump(is_dir('./images/frontpage'));
var_dump(is_dir('images/frontpage'));
var_dump(is_dir('/webroot/images/frontpage'));
var_dump(is_dir('.\images\frontpage'));

他们都将返回false。但如果在webroot\index.php {...}}内......

    var_dump(is_dir('../images'));

......他们返回true。我错过了一些明显的东西吗它应该以这种方式工作吗?我不明白这一点。

但是:如果我有这样的事情:

/
/webroot/
/webroot/index.php
/webroot/images/foo.jpg
/webroot/subfolder/index.php

然后var_dump(is_dir('../images'));会在trueindex.php

中同时返回subfolder/index.php

1 个答案:

答案 0 :(得分:1)

如果你从/webroot/subfolder/打电话,两者都会返回true。

...取决于您的当前工作目录。从/webroot/index.php拨打/webroot/subfolder/some.php/webroot/subfolder/ 当前工作目录。因此'../images'将始终是一个目录,它将返回true。