2013-10-06 35 views
-1

我使用PHPseclib中的nlist()函數來列出遠程服務器上目錄的內容。這是我得到的結果。 Array ([0] => newfile.txt [1] => . [2] => .. [3] => oldfile.txt [4] => ReadMe.pdf)來自nlist()的數組顯示週期

我在這個文件夾中有以下文件。

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

但是,爲什麼它把。和..在陣列中?無論我在哪個目錄中或在該目錄中有多少項目,這似乎都會發生。

回答

2

...是魔法,並存在於每個文件夾中。第一個引用當前目錄,第二個引用父目錄。

您可以從搜索結果列表與http://php.net/array_diff

<? 
$arr = array('newfile.txt', '.', '..', 'oldfile.txt', 'readme.pdf'); 
$arr = array_diff($arr, array('.', '..')); 
print_r($arr) 
?> 
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 
});