Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> ilość plików w folderze
waser
post
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
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
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
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 (IMG:http://forum.php.pl/style_emoticons/default/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
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 (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
nospor
post
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. ?>
Go to the top of the page
+Quote Post
Kas
post
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. ?>
Go to the top of the page
+Quote Post
nospor
post
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
Go to the top of the page
+Quote Post
waser
post
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 (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
ale dzieki etż wsyzstkim za fatyge, jestście najlepsi! (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif)
Go to the top of the page
+Quote Post
Kas
post
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! (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
A to dobrze, że wiesz. Jednak powiedzieć mogę.

Ten post edytował Kas 10.08.2005, 12:28:39
Go to the top of the page
+Quote Post
Liko
post
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ć (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
-----
nospor
Go to the top of the page
+Quote Post
waser
post
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
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 (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)

edit:
a czemu do www się odwolujesz? nie możesz katalogów z wlasnego serwera? Może ty złą ściezkę podajesz
Go to the top of the page
+Quote Post
waser
post
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 (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
nospor
post
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.
Go to the top of the page
+Quote Post
mike
post
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 (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Ten post edytował mike_mech 10.08.2005, 17:10:37
Go to the top of the page
+Quote Post
nospor
post
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
Go to the top of the page
+Quote Post
mike
post
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.

(IMG:http://forum.php.pl/style_emoticons/default/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. (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
----
nospor


(IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Ten post edytował mike_mech 10.08.2005, 17:11:14
Go to the top of the page
+Quote Post
Widmo
post
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 (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)

szukalem juz dlugo.

jedno tylko pytanie - czy jest gdzies dostepny kod zrodlowy tej klasy ?
Go to the top of the page
+Quote Post
mike
post
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
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 21:59