Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> ilość plików w folderze
waser
post 8.08.2005, 13:55:00
Post #1





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 8.07.2005

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


otóż chce mieć ilość flików w danym katalogu, oczywiście także w podkatalogach tego katalogu, ma ktos jakis pomysl?
Go to the top of the page
+Quote Post
Ociu
post 8.08.2005, 14:12:44
Post #2





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




scandir" title="Zobacz w manualu php" target="_manual
Go to the top of the page
+Quote Post
bendi
post 8.08.2005, 14:28:42
Post #3





Grupa: Zarejestrowani
Postów: 401
Pomógł: 5
Dołączył: 14.09.2003
Skąd: Wrocław

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


Cytat(waser @ 2005-08-08 14:55:00)
otóż chce mieć ilość flików w danym katalogu, oczywiście także w podkatalogach tego katalogu, ma ktos jakis pomysl?

Było ostatnio nawet parę razy:
  1. <?php
  2.  echo( count( glob( '*.*' ) ) );
  3. ?>


Ten post edytował bendi 8.08.2005, 14:29:09


--------------------
Go to the top of the page
+Quote Post
Bociek
post 8.08.2005, 16:17:46
Post #4





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 2.08.2005

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


albo:

  1. <?php
  2.  
  3. $handle = opendir('katalog/');
  4. $zmienna = null;
  5.  
  6. while($file = readdir($handle))
  7. {
  8. if($file!='.' && $file!='..')
  9. {
  10. $zmienna++;
  11. }
  12. }
  13.  
  14. echo $zmienna; //masz ilosc plikow
  15.  
  16. ?>


powyższy przykład podał __Mateo w tym poście winksmiley.jpg
hmm jedyny problem to to, że nie liczy plików w podkatalogach, ale można go przerobić

Ten post edytował Bociek 8.08.2005, 16:18:47
Go to the top of the page
+Quote Post
waser
post 10.08.2005, 09:12:02
Post #5





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 8.07.2005

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


scan dir nie jest dostepny w php4 sad.gif
Go to the top of the page
+Quote Post
nospor
post 10.08.2005, 09:26:39
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




ech, masz:
  1. <?php
  2.  
  3. function countFiles($path, &$count)
  4. {
  5. $handle = opendir($path);
  6. while($file = readdir($handle))
  7. {
  8. if($file!='.' && $file!='..')
  9. {
  10. if (is_dir($path.'/'.$file))
  11. countFiles($path.'/'.$file, $count);
  12. else
  13. $count++;
  14. }
  15. }
  16. closedir($handle);
  17. }
  18.  
  19. $count = 0;
  20. countFiles('c:/katalog', $count);
  21. echo $count; //masz ilosc plikow
  22.  
  23. ?>


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Kas
post 10.08.2005, 09:53:48
Post #7





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

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


Ja toz zrobiłem tak

  1. <?php
  2. $dir = "./news";
  3. $dh = opendir($dir);
  4. while (false !== ($filename = readdir($dh))) {
  5.  $files[] = $filename;
  6. }
  7.  
  8. $i = count($files) - 2;
  9.  
  10. echo ("Łącznie jest $i newsów.");
  11. ?>


--------------------
nospor, jestem z Wami.
Alpha IT
Go to the top of the page
+Quote Post
nospor
post 10.08.2005, 10:01:42
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




@kas ale Twój sposób zliczy tylko w katalogu i na dodatek zliczy tez katalogi. nie zliczy w podkatalogach.Chodzilo o pliki w katalogu i jego podkatalogach. pozatym jak już robisz opendir to daj też closedir.

Tu trzeba rekurencję machnąć jak ja w poprzednim poście


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
waser
post 10.08.2005, 12:14:47
Post #9





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 8.07.2005

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


dzięki nospor, skrypcik śmiga bardzo sprawnie biggrin.gif
ale dzieki etż wsyzstkim za fatyge, jestście najlepsi! aarambo.gif

dobra czyli kolejny problem rowiazany.. hehh no to pora rozwiazac kolejne... zara zaloze nowy post tym razem z includowaniem - kurde trzeba sie nameczyc jak sie stronke robi snitch.gif
Go to the top of the page
+Quote Post
Kas
post 10.08.2005, 12:17:13
Post #10





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

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


@nospor
Zliczy wszystko - 2.
Zakładałem, że nie ma podkatalogów.

ja wiem co robi Twój skrypt. Ty mi tego nie musisz mówić. Ja ci tylko napisałem, że jest nie zgodny z tematem.
----
nospor


Edytowanie moich postów zabronione! tongue.gif
A to dobrze, że wiesz. Jednak powiedzieć mogę.

Ten post edytował Kas 10.08.2005, 12:28:39


--------------------
nospor, jestem z Wami.
Alpha IT
Go to the top of the page
+Quote Post
Liko
post 10.08.2005, 13:09:27
Post #11





Grupa: Zarejestrowani
Postów: 436
Pomógł: 6
Dołączył: 8.11.2003
Skąd: Szczecin

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


<span style="font-weight: bold;">@nospor:</span> Pozwoliłem sobie aby Ci pokazać jak można zliczyć ilość plików bez rekurencji. Jak mi sie wydaje rekurencja nie jest zbyt wydajna.



  1. <?php
  2. /**
  3.  * Kawalek funkcji wyciagnietej z klasy DirWalker.
  4.  * @link http://php.net/manual/pl/function.readdir.php#52864
  5.  * @author matthew.panetta@gmail.com
  6.  */
  7. function countFiles( $dir )
  8. {
  9.     $countFiles = 0;
  10.     $dirList[] = $dir;
  11.     while ( ( $currDir = array_pop( $dirList ) ) !== NULL )
  12.     {
  13.         $dir = opendir( $currDir );
  14.         while( ( false !== ( $file=readdir( $dir ) ) ) )
  15.         {
  16.             if( $file =='.' || $file == '..' )
  17.             {
  18.                 continue;
  19.             }
  20.  
  21.             $fullName = $currDir . DIRECTORY_SEPARATOR . $file;
  22.  
  23.             if( is_dir ( $fullName ) )
  24.             {
  25.                 array_push ( $dirList, $fullName );
  26.                 continue;
  27.             }
  28.  
  29.             $countFiles++;
  30.         }
  31.  
  32.         closedir($dir);
  33.     }
  34.     return $countFiles;
  35. }
  36.  
  37. print( countFiles( '../' ) );
  38. ?>


o, ciekawe rozwiązanie. Przyda się pewnie kiedyś.
dziękować, dziękować biggrin.gif
-----
nospor
Go to the top of the page
+Quote Post
waser
post 10.08.2005, 14:13:11
Post #12





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 8.07.2005

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


nospor, jest problem maly z tym skryptem co mi napisales, mianowicie gdy pisze adres c:/cos_tam, to nie ma problemu ale gdy pisze adres do katalogu www to wyskakuja bledy...

failed to open dir: not

readdir(): supplied argument is not a valid Directory


closedir(): supplied argument is not a valid Directory
Go to the top of the page
+Quote Post
nospor
post 10.08.2005, 14:21:12
Post #13





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




To nie jest problem ze skryptem jako takim. To jest problem z funkcją opendir, która otwiera katalog. no może jest problem, że nie ma kontroli błędów biggrin.gif

próbujesz otworzyć katalog, który jest na www. I albo nie masz do niego praw albo opendir nie pozwala na otweiranie takich katalogów. Aż takich cudów co ty próbujesz to ja nie robilem biggrin.gif

edit:
a czemu do www się odwolujesz? nie możesz katalogów z wlasnego serwera? Może ty złą ściezkę podajesz


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
waser
post 10.08.2005, 14:28:05
Post #14





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 8.07.2005

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


chodiz oto ze to katalog ze zdjeciami, jest zaduzy zeby trzyamc go razem ze strona na serwerze (realia darmowych serwerow).. a moglbys dorogic tak zeby wynik wrzucal do pliku testowego? wtedy po psrostu includowalbym plik textowy z tamtego serwere a plik oliczajacy bylby na nim biggrin.gif
Go to the top of the page
+Quote Post
nospor
post 10.08.2005, 14:32:04
Post #15





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




oj już nie przesadzaj. sam zrób
funckje fopen, fwrite, fclose. W manualu jest piękny przykład:
http://pl.php.net/manual/pl/function.fwrite.php
a najszybciej:
http://pl.php.net/manual/pl/function.file-put-contents.php

zamiast
echo $count; //masz ilosc plikow
masz dać zapisanei do pliku.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
mike
post 10.08.2005, 14:49:45
Post #16





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


ja dodam, że gdybyście korzystali z php5 anie PHP4 to ....
  1. <?php
  2.  
  3. $objDir = new RecursiveIteratorIterator( new RecursiveDirectoryIterator( './folder/' ) );
  4.  
  5. foreach( $objDir as $objFile )
  6. {
  7. echo $objFile . '<br>';
  8. }
  9.  
  10. ?>


I w ten sposób wyświetliliśmy wszystkie pliki w folderach, nawet w podfolderach winksmiley.jpg

Ten post edytował mike_mech 10.08.2005, 17:10:37
Go to the top of the page
+Quote Post
nospor
post 10.08.2005, 14:50:38
Post #17





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




@mike_mech czytaj wszystkie posty a byś siędowiedzial ze chodzi o php4


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
mike
post 10.08.2005, 15:00:48
Post #18





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Wiem @nospor, po prostu chciałem zwrócić uwagę na dobrodziejstwa PHP5, o których często się nie pamięta.

Można to potraktować jak swego rodzaju Off-Topic.

winksmiley.jpg

oki, tylko że tekst "A panowie zapomnieli o dobroci PHP5" gdy potrzeba nam do php4, jest trochę nie na miejscu.
Gdyby było np. "ja dodam, że gdybyście korzystali z php5 anie php4 to ...." wtedy by wynikalo ze posty czytales i że to taka przyjazna wzmianka. biggrin.gif
----
nospor


tongue.gif

Ten post edytował mike_mech 10.08.2005, 17:11:14
Go to the top of the page
+Quote Post
Widmo
post 12.04.2006, 00:36:27
Post #19





Grupa: Zarejestrowani
Postów: 136
Pomógł: 0
Dołączył: 25.05.2003

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


Dzieki mike_mech, wlasnie bardzo mi pomogles z tym skryptem biggrin.gif

szukalem juz dlugo.

jedno tylko pytanie - czy jest gdzies dostepny kod zrodlowy tej klasy ?


--------------------
Widmo
Go to the top of the page
+Quote Post
mike
post 12.04.2006, 09:16:14
Post #20





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Cytat(Widmo @ 2006-04-12 00:36:27)
jedno tylko pytanie - czy jest gdzies dostepny kod zrodlowy tej klasy ?

Wszystkie te klasy należą do biblioteki SPL, która jest standardowo dołączona do php5.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 12.06.2025 - 12:50