我使用nlist()
中的PHPseclib
函数列出远程服务器上目录的内容。这是我得到的结果。
Array ( [0] => newfile.txt [1] => . [2] => .. [3] => oldfile.txt [4] => ReadMe.pdf )
。
我在此文件夹中有以下文件。
1. newfile.txt
2. oldfile.txt
3. ReadMe.pdf
但是,为什么要这样做呢。和..在数组?无论我在哪个目录或该目录中有多少项目,这似乎都会发生。
答案 0 :(得分:2)
.
和..
是神奇的,并且存在于每个文件夹中。第一个引用当前目录,第二个引用父目录。
您可以使用http://php.net/array_diff
将其从结果列表中删除<?
$arr = array('newfile.txt', '.', '..', 'oldfile.txt', 'readme.pdf');
$arr = array_diff($arr, array('.', '..'));
print_r($arr)
?>
答案 1 :(得分: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
});