为什么每当我使用scandir()时,我都会在数组的开头收到句点?

2022-08-30 13:27:12

为什么每当我使用scandir()时,我都会在数组的开头收到句点?

Array
(
    [0] => .
    [1] => ..
    [2] => bar.php
    [3] => foo.txt
    [4] => somedir
)
Array
(
    [0] => somedir
    [1] => foo.txt
    [2] => bar.php
    [3] => ..
    [4] => .
)

答案 1

每个目录列表中都有两个条目:

  • .引用当前目录
  • ..引用父目录(如果当前目录是根目录,则为根目录)

您可以通过从 scandir 的结果中过滤掉它们来从结果中删除它们:

$allFiles = scandir(__DIR__); // Or any other directory
$files = array_diff($allFiles, array('.', '..'));

答案 2

这些是当前 () 和父 () 目录。它们存在于所有目录中,用于引用目录本身及其直接父级。...


推荐