为什么DirectoryIterator访问我定义的路径文件夹,而是访问父路径?

时间:2016-03-03 10:18:55

标签: php nginx

我正在运行自制的php和nginx安装。我的根网站目录是/ var / www。在里面,我有一个包含大量文件的文件夹:

rmp:~ rmp$ cd /var/www/somefolder
rmp:somefolder rmp$ ls
//lists all the files

我创建了一个脚本来遍历目录并对文件执行某些操作:

$dir = new DirectoryIterator(dirname('/var/www/somefolder/'));

foreach ($dir as $fileinfo) {
    if (!$fileinfo->isDot()) {
        var_dump($fileinfo->getFilename());
    }
}

我没有在 somefolder / 文件夹中获取所有文件名,而是在 / var / www

中获取文件列表

我认为这很奇怪,所以我尝试了一个相对路径,因为我的脚本位于文件夹并列 somefolder 我试过路径:

$dir = new DirectoryIterator(dirname('../somefolder/'));

再次, / var / www

的内容

这个问题似乎很简单。让我感到非常愚蠢。

我想也许服务器认为我在不同的目录中?我尝试echo getcwd()并获得了/private/var/www

所以我也尝试了带有私有的绝对值的所有内容。还是一样。我错过了什么?

这是奇怪的事情,如果我走的路:

/var/www/somefolder/somefolder

然后它有效!?它不应该。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

因为dirname('/ var / www / somefolder /')结果是'/ var / www',你可以测试它。