来自nlist()的数组显示句点

时间:2013-10-06 22:35:47

标签: php phpseclib

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

我在此文件夹中有以下文件。

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

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

2 个答案:

答案 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
});