为什么目录迭代器访问我定义的这个路径文件夹,而是访问父文件夹


Why DirectoryIterator access this path folder I define, but instead accessing the parent?

我正在运行一个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());
    }
}

我没有在某个文件夹/文件夹中获取所有文件名,而是在/var/www 中获取文件列表

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

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

再次,/var/www 的内容

问题似乎是基本的。让我觉得自己真的很傻。

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

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

如果我

走这条路,这是奇怪的事情:

/var/www/somefolder/somefolder

然后它起作用!?不应该。有什么想法吗?

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