Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Ilosc plikow w katalogu
M45t3r
post
Post #1





Grupa: Zarejestrowani
Postów: 133
Pomógł: 0
Dołączył: 16.05.2005
Skąd: Lubaczów

Ostrzeżenie: (0%)
-----


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

Ten post edytował M45t3r 19.07.2005, 19:53:55
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
_Mateo
post
Post #2





Grupa: Zarejestrowani
Postów: 189
Pomógł: 0
Dołączył: 4.03.2005
Skąd: Jaworzno

Ostrzeżenie: (0%)
-----


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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
M45t3r
post
Post #3





Grupa: Zarejestrowani
Postów: 133
Pomógł: 0
Dołączył: 16.05.2005
Skąd: Lubaczów

Ostrzeżenie: (0%)
-----


hmmm.... niestety ale nie bardzo rozumem (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
infernox
post
Post #4





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 6.02.2005
Skąd: Krakow

Ostrzeżenie: (0%)
-----


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

.
..
Go to the top of the page
+Quote Post
_Mateo
post
Post #5





Grupa: Zarejestrowani
Postów: 189
Pomógł: 0
Dołączył: 4.03.2005
Skąd: Jaworzno

Ostrzeżenie: (0%)
-----


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 (IMG:http://forum.php.pl/style_emoticons/default/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. ?>
Go to the top of the page
+Quote Post
infernox
post
Post #6





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 6.02.2005
Skąd: Krakow

Ostrzeżenie: (0%)
-----


@_Mateo przyznaje ze tak, ale ten kod wycialem z czegos w czym jako pierwsze napotkalem a tam dalej byla uzywana ta tablica
Go to the top of the page
+Quote Post
Ociu
post
Post #7





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




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. ?>
Go to the top of the page
+Quote Post
M45t3r
post
Post #8





Grupa: Zarejestrowani
Postów: 133
Pomógł: 0
Dołączył: 16.05.2005
Skąd: Lubaczów

Ostrzeżenie: (0%)
-----


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 (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Bardzo Ci dziękuje (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Kas
post
Post #9





Grupa: Zarejestrowani
Postów: 425
Pomógł: 0
Dołączył: 28.05.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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. ?>


Ten post edytował Kas 19.07.2005, 20:42:52
Go to the top of the page
+Quote Post
aleksander
post
Post #10





Grupa: Przyjaciele php.pl
Postów: 742
Pomógł: 0
Dołączył: 14.12.2003
Skąd: Gdańsk, Trójmiasto

Ostrzeżenie: (0%)
-----


  1. <?php
  2. count( glob( 'katalog/*' ) );
  3. ?>
było całkiem niedawno na forum...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.12.2025 - 09:15