Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zliczanie grafik z folderow ?! jak ?!
djbarca
post
Post #1





Grupa: Zarejestrowani
Postów: 231
Pomógł: 1
Dołączył: 22.04.2007
Skąd: Rypin

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


mam taki problem ... zalozmy
w folderze grafika znajduja sie jakies foldery w tych folderach znajduja sie podfoldery a w kazdym z tych podfolderow znajduje sie folder male .. jak mozna policzyc ile jest lacznie plikow w tych folderach male ... (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

Ten post edytował djbarca 19.10.2007, 08:17:00
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
Cezar708
post
Post #2





Grupa: Zarejestrowani
Postów: 1 116
Pomógł: 119
Dołączył: 10.05.2005
Skąd: Poznań

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


Mogą być małe błędy, jak będą daj znać to coś z tym poradzimy
  1. <?php
  2. $countOfMale = 0;
  3. $arrExtent = array('gif', 'jpeg', 'bmp' ); // i tam inne rozszerzenia, ktore uwazasz za grafike (malymi literami)
  4. // liczy ile jest grafik w podkatalogu male
  5. function countOfMale($dirName){
  6. global $arrExtent;
  7. if ( basename($dirName) != 'male' ) {
  8. return 0;
  9. }
  10. $intReturn = 0;
  11. $d = dir($dirName);
  12. while (false !== ($entry = $d->read())) {
  13. if ( is_file("$dirName/$entry") ){
  14. $arr = explode(".", $entry);
  15. $ext = $arr[count($arr)-1];
  16. if ( in_array( strtolower($ext), $arrExtent) ){
  17.  $intReturn ++;
  18. }
  19. }
  20. }
  21. $d->close();
  22. return $intReturn;
  23. }
  24. // chodzi po katalogu
  25. function getDir($dirName){
  26. global $countOfMale;
  27. $d = dir($dirName);
  28. while (false !== ($entry = $d->read())) {
  29. if ( is_dir("$dirName/$entry") ){
  30. if ( $entry == 'male' ){
  31. $countOfMale += countOfMale("$dirName/$entry");
  32. } else {
  33. // rekurencja
  34. getDir("$dirName/$entry");
  35. }
  36. }
  37. } 
  38. $d->close();
  39. }
  40.  
  41. // wywolanie, zakladam ze kat `grafika` jest w tym samym katalogu co skrypt wywolu
    jacy
  42.  getDir('grafika');
  43. ?>


Ten post edytował Cezar708 19.10.2007, 09:11:15
Go to the top of the page
+Quote Post
batman
post
Post #3





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Wybacz Cezar708 za moje gorzkie słowa, ale wydaje mi się, że musisz poczytać o PHP5. Ten sam efekt, znacznie prościej:

  1. <?php
  2. $dir = new RecursiveIteratorIterator(new RecursiveDirectoryIterator("grafika"));
  3. $licznik = 0;
  4. foreach($dir as $file) {
  5. // jesli nie dziala to uzyj takiego warunku
  6. // if(substr($file->getPath(), -4) == 'male') {
  7.  
  8. if(substr($file->getPath(), -5) == '/male') {
  9. $licznik++;
  10. }
  11. }
  12. echo $licznik;
  13. ?>

Założenie jak powyżej. Folder grafika znajduje się w tej samej lokalizacji co skrypt zliczający.
Go to the top of the page
+Quote Post
Cezar708
post
Post #4





Grupa: Zarejestrowani
Postów: 1 116
Pomógł: 119
Dołączył: 10.05.2005
Skąd: Poznań

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


Panie batmanie...

1. oki nie pomyślałem o takim rozwiązaniu co nie znaczy, że również jest to rozwiązanie
2. Kolega djbarca nic nie wspominał o PHP5
3. Twój skrypt nie pokazuje tego co chce kolega djbarca chciał uzyskać, ponieważ Ty jedynie policzyłeś katalogi o nazwie `male` a nie o to chodziło.
4. Mówienie komuś, że nie zna PHP5, bo nie wykorzystał wbudowanej biblioteki, tylko pokazał inny pomysł jest bez sensu.

Pozdrawiam (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
mike
post
Post #5





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

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


Cytat(Cezar708 @ 19.10.2007, 15:20:11 ) *
2. Kolega djbarca nic nie wspominał o PHP5
Domyślnie bierze się pod uwagę wersję aktualnie rekomendowaną a nie jakąś archaiczną. Zalecane jest od kilku lat PHP5.
Cytat(Cezar708 @ 19.10.2007, 15:20:11 ) *
3. Twój skrypt nie pokazuje tego co chce kolega djbarca chciał uzyskać, ponieważ Ty jedynie policzyłeś katalogi o nazwie `male` a nie o to chodziło.
A to z kolei przykład, że nie rozumiesz kodu bo tak się składa, że liczy on pliki a nie foldery.
Cytat(Cezar708 @ 19.10.2007, 15:20:11 ) *
4. Mówienie komuś, że nie zna PHP5, bo nie wykorzystał wbudowanej biblioteki, tylko pokazał inny pomysł jest bez sensu.
Bez sensu jest pokazywanie starych archaicznych sposóbów ludziom, którzy się dopiero uczą. Podtrzymujesz ich niewiedzę.
Go to the top of the page
+Quote Post
batman
post
Post #6





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Cezar708
1. Twoje rozwiązanie jest znacznie mniej wydajne, bardziej skomplikowane i bardziej podatne na błędy. Ale fakt, to też jest rozwiązanie.
2. Nie musiał. PHP4 jest wspierany do końca roku i nikt przy zdrowych zmysłach nie pisze już w tej wersji języka.
3. Podtrzymuję moją tezę o poczytaniu o na temat PHP5. A dlaczego? Dowiesz się jak poczytasz.
4. Bez sensu jest pisanie czegoś, co jest już napisane. Czasy, gdy dwóch programistów się spierało o to, który potrafi napisać szybszy program w asemblerze do wyświetlania piksela, minęły. Teraz stawia się na wydajność programisty.

edit
Byłeś szybszy dosłownie o sekundy (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Ten post edytował batman 19.10.2007, 14:31:31
Go to the top of the page
+Quote Post
djbarca
post
Post #7





Grupa: Zarejestrowani
Postów: 231
Pomógł: 1
Dołączył: 22.04.2007
Skąd: Rypin

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


ten pierwszy kod nie chodzil ... ale ten php5 dziala idealnie ... wielkie dzieki Panie batmanie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
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.08.2025 - 13:37