Nasıl PHP ile bir dizindeki ilk 5 dosyalarını buluyorsunuz?

3 Cevap php

Nasıl PHP ile alfabetik sıralı dizinin ilk 5 dosya ya da dizinleri listelemek istiyorsunuz?

3 Cevap

Using scandir():

array_slice(array_filter(scandir('/path/to/dir/'), 'is_file'), 0, 5);

array_filter() birlikte is_file() function geri arama ile biz sadece bir döngü yazmak zorunda kalmadan dosyaları işlemek emin olur, biz bile . umurumda yok ve onlar dizinleri .. gibi.


Or using glob() - it won't match filenames like .htaccess :

array_slice(glob('/path/to/dir/*.*'), 0, 5);

Or using glob() + array_filter() - this one will match gibi dosya adları .htaccess :

array_slice(array_filter(glob('/path/to/dir/*'), 'is_file'), 0, 5);

Eğer (inode sayısına göre sıralanmıştır) düşük düzeyde düşünüyorsanız, o zaman readdir sizin için işlevdir.

Eğer alfabetik onları istediğiniz Aksi takdirde, daha sonra scandir daha iyi bir seçenek olabilir. Gibi:

$firstfive = array_slice(scandir("."), 2, 5);

Tarafından döndürülen ilk iki kayıtlar scandir olduğunu unutmayın "." ve "..".

Bu size biraz daha karmaşık bir şey yapmak istemediğiniz sürece, scandir kullanmak için muhtemelen en basit. scandir yanı dizinleri döndürür, böylece biz sadece dosyaları izin filtre edeceğiz:

$items = scandir('/path/to/dir');
$files = array();
for($i = 0, $i < 5 && $i < count($items); $i++) {
    $fn = '/path/to/dir/' . $items[$i];
    if(is_file($fn)) {
        $files[] = $fn;
    }
}