-1

我正在使用nlist()函数 from PHPseclib列出远程服务器上目录的内容。这是我得到的结果。 Array ( [0] => newfile.txt [1] => . [2] => .. [3] => oldfile.txt [4] => ReadMe.pdf ).

我在这个文件夹中有以下文件。

1. newfile.txt
2. oldfile.txt
3. ReadMe.pdf

但是,为什么要把 . 和..在数组中?无论我在哪个目录或该目录中有多少项目,这似乎都会发生。

4

2 回答 2

2

.并且..很神奇,并且存在于每个文件夹中。第一个是指当前目录,第二个是指父目录。

您可以使用http://php.net/array_diff从结果列表中删除它们

<?
$arr = array('newfile.txt', '.', '..', 'oldfile.txt', 'readme.pdf');
$arr = array_diff($arr, array('.', '..'));
print_r($arr)
?>
于 2013-10-06T22:40:04.633 回答
1

在类 Unix 系统下,所有目录都包含两个附加条目。.指当前目录并..指父目录。

您可以使用array_filter从数组中删除这些项目:

$files = nlist($dir = '/path/to/directory/');
$array = array_filter($files, function($file) {
    return $file[0] !== '.'; // return if filename doesn't start with period
});
于 2013-10-06T22:42:43.743 回答