Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wyświetlanie plików z folderu, problem
Forum PHP.pl > Forum > Przedszkole
KrzysiekKCN
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. ?>
nospor
Wystarczy ciut pomyśleć......

O tę zmienną: $file_list zeruj przed pętlą.
KrzysiekKCN
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?
nospor
rety..... napisałem $file_list a nie $file_name. I masz to zerować przed WHILE
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.