Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Wyświetlanie plików z folderu, problem, Duplikowanie listy plików przy kolejnym powtórzeniu pętli
KrzysiekKCN
post 15.03.2012, 12:50:53
Post #1





Grupa: Zarejestrowani
Postów: 148
Pomógł: 2
Dołączył: 4.08.2009
Skąd: Poznań

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


Witam, napisałem prosty skrypt na swoją stronkę, chciałbym żeby automatycznie wyświetlał mi pliki z folderu i dodawał im styl, wg ich wielkości.
Problem jest w tym, że przy każdym obrocie pętli, lista plików jest duplikowana i się zwiększa.

Proszę o pomoc, i sugestie jak zoptymalizować kod, który prawde mówiąc jeszcze jest strasznie nieczytelny.

  1. <?php
  2. $mioty = array("F", "E", "D", "C", "B", "A");
  3. $ojciec = array("pies1", "pies2", "pies3", "pies4", "pies5", "pies6");
  4. $ojciec_img = array("obraz.jpg", "obraz.jpg", "obraz.jpg", "obraz.jpg", "obraz.jpg", "obraz.jpg");
  5. $matka = array("suka1", "suka2", "suka3", "suka4", "suka5", "suka6");
  6. $matka_img = array("obraz.jpg", "obraz.jpg", "obraz.jpg", "obraz.jpg", "obraz.jpg", "obraz.jpg");
  7. $i = 0;
  8.  
  9. foreach ($mioty as $miot) {
  10.  
  11. echo '<p>Miot: '.$miot.'</p>';
  12. echo '<p>Ojciec: '.$ojciec[$i].'
  13. <img src="images/miot'.$miot.'/'.$ojciec_img[$i].'" style="height: 63px; width:63px;"></p>';
  14. echo '<p>Matka: '.$matka[$i].'
  15. <img src="images/miot'.$miot.'/'.$matka_img[$i].'" style="height: 63px; width:63px;"></p>';
  16. //zdjecia
  17. $directory = 'images/miot'.$miot;
  18.  
  19. $dir=opendir($directory);
  20. while($file_name=readdir($dir))
  21. {
  22. if(($file_name!=".")&&($file_name!=".."))
  23. {
  24. $obraz = $directory.'/'.$file_name;
  25. list($width, $height) = getimagesize($obraz);
  26. if ($height > $width) {
  27. $styl = 'width="90" height="120"';
  28. } else {
  29. $styl = 'width="160" height="120"';
  30. }
  31. $file_list.='<img src="'.$directory.'/'.$file_name.'" '.$styl.'>';
  32. }
  33. }
  34. closedir($dir);
  35. echo "$file_list";
  36.  
  37. echo '</div>';
  38. //
  39. $i++;
  40. echo '<hr>';
  41. }
  42. ?>
Go to the top of the page
+Quote Post
nospor
post 15.03.2012, 14:05:05
Post #2





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




Wystarczy ciut pomyśleć......

O tę zmienną: $file_list zeruj przed pętlą.


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

"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
KrzysiekKCN
post 15.03.2012, 14:42:01
Post #3





Grupa: Zarejestrowani
Postów: 148
Pomógł: 2
Dołączył: 4.08.2009
Skąd: Poznań

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


probowałem to już, ale chyba źle robię.

wstawiam $file_name = array(); w whileu i wyswietla mi tyle samo zdjęć (tzn, tyle samo ramek, tylko się sciezka sypie)
natomiast gdy podstawie 0 nie wyświetla ich w ogole, nigdy jeszcze nie zerowałem zmiennych inaczej wiec może robię coś źle?
Go to the top of the page
+Quote Post
nospor
post 15.03.2012, 14:42:59
Post #4





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




rety..... napisałem $file_list a nie $file_name. I masz to zerować przed WHILE


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

"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

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: 25.07.2025 - 10:47