[PHP] Jak policzyć ile plików (wszystkich lub określonego typu) znajduje się w wybranym katalogu?
Chcesz policzyć ile plików znajduje się w wybranym katalogu na dysku, a także sprawdzić ile jest w nim plików określonego typu, np. o rozszerzeniu ".txt".
Pobranie liczby plików przydaje się wszędzie tam, gdzie trzeba sprawnie zarządzać plikami i dokonać na nich różnych operacji. Aby pobrać liczbę plików wystarczy odczytać zawartość katalogu. Zobacz jak to zrobić:
<?
$sciezka = "./";
$katalog = opendir($sciezka);
while ($plik = readdir($katalog)) {
if (($plik<>".")&&($plik<>"..")&&(!is_dir($sciezka.$plik))) {
$i++;
}
}
closedir($katalog);
echo "W katalogu jest $i plików";
?>
Powyższy przykład otwiera katalog do odczytu, a następnie pobiera całą zawartość katalogu. Jeżeli element katalogu nie wskazuje na siebie ".", katalog nadrzędny ".." i inny katalog, oznacza, że jest on plikiem. Wtedy powiększana o jeden zostaje zmienna $i, która spełnia rolę licznika plików.
Kolejny przykład działa podobnie, jednak reaguje wyłącznie na plik o określonym rozszerzeniu. Jeżeli element katalogu ma podane rozszerzenie, licznik zwiększany jest o 1. Znaczek dolara w wyrażeniu regularnym oznacza, że rozszerzenie ".txt" musi występować na samym końcu nazwy pliku. W przeciwnym wypadku liczone byłyby też pliki np. o rozszerzeniu ".txtsp" lub ".txt.js".
<?
$sciezka = "./";
$katalog = opendir($sciezka);
while ($plik = readdir($katalog)) {
if (eregi(".txt$",$plik)) {
$i++;
}
}
closedir($katalog);
echo "W katalogu jest $i plików .txt";
?>