Nasıl PHP ile alfabetik sıralı dizinin ilk 5 dosya ya da dizinleri listelemek istiyorsunuz?
Using scandir()
: strong>
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
em>:
array_slice(glob('/path/to/dir/*.*'), 0, 5);
Or using glob()
+ array_filter()
- this one will match gibi dosya adları .htaccess
em>:
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;
}
}