Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: ilosc plikow w katalogu
Forum PHP.pl > Forum > PHP
Vocatio
Witam
czy jest komenda, ktora mi zwroci ilosc plikow w katalogu?
W manualu nie moge nic takiego odnalezc. Jesli nie, to jak proponujecie zorganizowac sprawdzenie tegoz?
Pozdrawiam
Wojtek B
afrodyzjak
  1. <?php
  2.  
  3. $sciezka = &#092;"./\";
  4.  
  5. $katalog = opendir($sciezka);
  6. while ($plik = readdir($katalog)) {
  7. if (($plik<>&#092;".\")&&($plik<>\"..\")&&(!is_dir($sciezka.$plik))) {
  8. $i++;
  9. }
  10. }
  11. closedir($katalog);
  12.  
  13. echo &#092;"W katalogu jest $i plików\";
  14.  
  15. ?>


W zmiennej $sciezka podana jest ścieżka do katalogu w którym, skrypt ma
policzyć ile jest plików.

Następnie skrypt pobiera zawartość katalogu i sprawdza czy dany "element"
nie jest katalogiem. Jeżeli warunek zwróci wartość true (prawda) to dodaje
do zmiennej $i 1. $i pełni funkcję licznika plików.
Vocatio
Wielkie dzieki.
To jest wlasnie ten efekt o ktory mi chodzilo - pozdrawiam
shreker
A jak policzyć pliki tylko o określonym rozszerzeniu np "jpg"?
_bolek_
Cytat(shreker @ 13.07.2008, 00:13:15 ) *
A jak policzyć pliki tylko o określonym rozszerzeniu np "jpg"?




dodaj eregi ktore sprawdzi poprzez wyrazenie regularne i jesli bedzie true to doda 1 do $i jesli nie to pominie. 


a jesli cos naprawde malo skomplikowanego to polecam:

  1. <?php
  2. echo count(glob("*.jpg"));
  3. ?>
M@X
ten kod zlicza pliki w danym katalogu, ale jak w katalogu jest jeszcze jakis katalog to juz ich nie zlicza... w jaki sposób przerobić to aby zliczał również pliki w podkatalogach ?
krispak
Chociazby tak.. leci przez wszystkie podkatalogi.
  1. $iterator = new RecursiveDirectoryIterator("sciezka katalogu");
  2. $count = 0;
  3. foreach (new RecursiveIteratorIterator($iterator) as $filename=>$fileInfo)
  4. {
  5. if($fileInfo->isFile() && strtolower(pathinfo($fileInfo->getFilename(), PATHINFO_EXTENSION)) == "jpg")
  6. {
  7. $count++;
  8. }
  9. }
  10.  
  11. echo "W katalogu i podkatalogach jest $count plików jpg";


@Edit: Crozin dzieki za przypomnienie o pathinfo na szybko zapomnialem o tym smile.gif // poprawione tongue.gif
Crozin
@up: sprawdzenie rozszerzenia:
  1. if (.... && strtolower(pathinfo($file->getFilename(), PATHINFO_EXTENSION)) == 'jpg' ) {
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.