2

我对 php.net 中描述的函数 is_dir() 的概念感到困惑,它说

判断给定的文件名是否是目录

(1)它检查给定的参数是否是一个目录,当我给它一个路径时,它在成功时返回true,但是它使用给定文件名的术语,如果我知道它是文件名(文件返回false),为什么会我首先要检查它吗?

(2)这里是我一直困惑的地方,readdir返回文件驻留在给定文件夹中,它返回文件名,但在我循环opendir()时也返回单点和双点,那么,究竟是什么点是否在返回值中表示?

4

1 回答 1

3

我认为它非常简单。
单点表示当前目录,双点表示父目录。
在根目录中不会有双点。
如果您使用“ls -a”Linux 命令,将会有相同的输出(单点和双点)。
这在某些情况下非常有用,可以查看在父目录或当前目录中授予了哪些权限。
我不确定,但我认为 readdir 函数使用导致点的相同接口。(也许php只是在内部使用“ls”语句或类似的东西)

您可以简单地在循环中跳过这两个“文件”,例如:

if ($file == "." or $file == "..") continue;
于 2013-07-29T01:07:03.417 回答