Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Ilosc plikow w katalogu
Forum PHP.pl > Forum > Przedszkole
M45t3r
Jaka funkcja odpowiada, za sprawdzenie ile plikow znajduje sie w jakims katalogu. Tzn mam plik.php i chce zeby tam wyświetlala się liczba - suma plikow - w katalogu x/y/z

nie wiem czy ktos mnie zrozumial, ale mam taka nadzieje :]

Z gory dziekuje
Pozdrawiam
Master
_Mateo
niestety funkcja nieistnieje, ale mozesz sobie przed pętelką odczytującą katalog ustawic zmienną np $count=0 i za kazdym razem wykonania petli $count++. Potem dajesz sobie echo $count i masz wynik smile.gif
M45t3r
hmmm.... niestety ale nie bardzo rozumem biggrin.gif sad.gif sad.gif sad.gif
infernox
dla php5 jest funkcja scandir()
http://at2.php.net/manual/en/function.scandir.php" title="Zobacz w manualu PHP" target="_manual

w innych wersjach ja przynajmniej stosuje taki kod

  1. <?php
  2. $opdir = opendir($dirpath);
  3. while (false !== ($filename = readdir($opdir))) 
  4. {
  5. $files[] = $filename;
  6. }
  7. ?>


a pozniej count()

nalezy jednak pamietac ze w liczbie uzyskanej zanjduja sie takze nastepujace elementy
Cytat

.
..
_Mateo
Popatrz:
Jak odczytujesz zawartosć katalogu (zakładam ze to potrafisz) to musisz uzywac petli. Jeśli chcesz sprawdzic ile jest plików (a zatem ile razy pętla się wykonała) inicjujesz przed nią zmienną (czyli $zmienna= null).
Teraz w ciele pętli umieszczeasz polecenie, który zwiększy twoją zmienną o 1 (czyli przy napotkaniu pliku doda go do wartosci zmiennej), więc $zmienna++. Potem wystarczy odczytać zmienną $zmienna, i mamy ilość plików w katalogu smile.gif

@infernox: nie uważasz, że prościej zwiękaszać zmienną niz eksportować pliki do tablicy i liczyć ilość jej elementów?

Edit: w przełożeniu na php oznacza to:
  1. <?php
  2.  
  3. $handle=opendir('katalog/');
  4. $zmienna=null;
  5. while($file=readdir($handle)) {
  6. if($file!='.' && $file!='..') { // to dsajesz zeby nie liczylo ani nie wyswietlalo katalogow '.' i '..'
  7. //operacje na plikach albo cos :)
  8. $zmienna++;
  9. }
  10. }
  11.  
  12. echo $zmienna; //masz ilosc plikow
  13. ?>
infernox
@_Mateo przyznaje ze tak, ale ten kod wycialem z czegos w czym jako pierwsze napotkalem a tam dalej byla uzywana ta tablica
Ociu
Very wolna wersja:
  1. <?php
  2. function countFiles($dirs)
  3. {
  4. $start = opendir($dirs);
  5. $c = 0;
  6. while($dir = readdir($start))
  7. {
  8. if(!is_dir($dir) && $dir != '.' && $dir != '..') $c++;
  9. }
  10. return $c;
  11. }
  12. ?>
M45t3r
Cytat(_Mateo @ 2005-07-19 19:14:18)
Popatrz:
Jak odczytujesz zawartosć katalogu (zakładam ze to potrafisz) to musisz uzywac petli. Jeśli chcesz sprawdzic ile jest plików (a zatem ile razy pętla się wykonała) inicjujesz przed nią zmienną (czyli $zmienna= null).
Teraz w ciele pętli umieszczeasz polecenie, który zwiększy twoją zmienną o 1 (czyli przy napotkaniu pliku doda go do wartosci zmiennej), więc $zmienna++. Potem wystarczy odczytać zmienną $zmienna, i mamy ilość plików w katalogu smile.gif

@infernox: nie uważasz, że prościej zwiękaszać zmienną niz eksportować pliki do tablicy i liczyć ilość jej elementów?

Edit: w przełożeniu na php oznacza to:
  1. <?php
  2.  
  3. $handle=opendir('katalog/');
  4. $zmienna=null;
  5. while($file=readdir($handle)) {
  6. if($file!='.' && $file!='..') { // to dsajesz zeby nie liczylo ani nie wyswietlalo katalogow '.' i '..'
  7. //operacje na plikach albo cos :)
  8. $zmienna++;
  9. }
  10. }
  11.  
  12. echo $zmienna; //masz ilosc plikow
  13. ?>

Twoj kod dziala w ten sposob o ktry mi chodziło smile.gif Bardzo Ci dziękuje smile.gif
Kas
Jaz robiłem to trochę inaczej

  1. <?php
  2. $dir = &#092;"./news\";
  3. $dh = opendir($dir);
  4. while (false !== ($filename = readdir($dh))) {
  5.  $files[] = $filename;
  6. }
  7.  
  8. $i = count($files) - 2;
  9.  
  10. echo (&#092;"Łącznie jest $i newsów.\");
  11. ?>
aleksander
  1. <?php
  2. count( glob( 'katalog/*' ) );
  3. ?>
było całkiem niedawno na forum...
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.