Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Tabela plikow jpg z katalogu
Forum PHP.pl > Forum > Przedszkole
gohu
Witam użytkowników forum php.pl w moim pierwszym poscie. Jestem dość początkujacym w php webmasterem i napotkałem pewien problem. Mianowicie chodzi mi skrypt ktory zliczy ilosc plikow, pobierze ich nazwy z katalogu i je wyswietli na stronie, przyczym po 4 wyswietlonym zdjeciu ma byc rozpoczecie od nowej lini. Popracowalem nad czyms takim

  1.  
  2. $dir=opendir("inc/produkty/galeria/");
  3.  
  4. while($nazwa=readdir($dir)){
  5.  
  6. if(($nazwa!=".")&&($nazwa!=".."))
  7.  
  8. {
  9.  
  10. $ilosc=count($pliki);
  11.  
  12.  
  13. $pliki[]=$nazwa; echo "<br>";
  14.  
  15. echo $ilosc;
  16.  
  17. echo "$nazwa";
  18.  
  19.  
  20. }
  21. }
  22.  


Chodzi mi o taka petle
  1. $rows = 4;
  2.  
  3. echo '<table><tr>';
  4.  
  5. for($i = 0; $i < 10; $i++){
  6.  
  7. echo '<td>' . $i . '</td>';
  8.  
  9. if(($i + 1) % $rows == 0){
  10.  
  11. echo '</tr><tr>';
  12. }
  13. }


wiec mam polowe sukcesu ale jesli ktos by mial chwilke i wskazal mi odpowiedni kierunek polaczenia tych 2 petli lub udzielil podpowiedzi w postaci kodu do dalszego rozwoju bym byl wdzieczny. Pozdrawiam
nekomata
Połączenie dwóch pętli
  1. <?php
  2. $folder = 'img/';
  3. $dir=opendir($folder);
  4. $i = 0;
  5. while($nazwa=readdir($dir)){
  6. if(($nazwa!=".")&&($nazwa!=".."))
  7. {
  8. $pliki[$i]=$nazwa;
  9. $i++; // ++ oznacza to samo co $i = $i+1;
  10. }
  11. }
  12. $ilosc=count($pliki);
  13. for($i=0 ;$i<=count($pliki)-1;$i++){
  14. echo $folder.$pliki[$i].'<br>';// Tutaj czynisz swoje możesz np. pobrać zawartość używając file_contents;
  15. }
  16. ?>

Jedną pętlą
  1. <?php
  2. $folder = 'img/';
  3. $dir=opendir($folder);
  4. while($nazwa=readdir($dir)){
  5. if(($nazwa!=".")&&($nazwa!=".."))
  6. {
  7. echo $folder.$nazwa.'<br>';
  8. // $folder.$nazwa odnoszą się bezpośrednio do pliku w pętli.
  9. }
  10. }
  11. ?>
Obydwa rozwiązania maja taki sam efekt.
gohu
Dziękuje bardzo za pomoc. Pozwolę sobie wstawić tutaj kod po rozbudowaniu z zamierzonym efektem, pewnie można było by to napisać jeszcze prościej smile.gif

  1.  
  2. $folder = 'inc/produkty/galeria/montana/m/';
  3. $miniatury = 'inc/produkty/galeria/montana/';
  4.  
  5. $dir=opendir($folder);
  6.  
  7. $i = 0;
  8.  
  9. while($nazwa=readdir($dir))
  10.  
  11. {
  12.  
  13. if(($nazwa!=".")&&($nazwa!="..")&&($nazwa!="m"))
  14.  
  15. {
  16.  
  17. $pliki[$i]=$nazwa;
  18.  
  19. $i++; // ++ oznacza to samo co $i = $i+1;
  20.  
  21. }
  22.  
  23. }
  24.  
  25.  
  26. echo "<table width=100% border=0 cellpadding=0><tr>";
  27.  
  28. $ilosc=count($pliki);
  29.  
  30. sort($pliki);
  31.  
  32. for($i=0 ;$i<=count($pliki)-1;$i++)
  33.  
  34. {
  35.  
  36. $in_row_count++;
  37.  
  38. echo '<td>';
  39.  
  40. echo '<a href='.$minatury.$pliki[$i].'><img width=100 src='.$folder.$pliki[$i].'></a>';
  41.  
  42. echo '</td>';
  43.  
  44. if ($in_row_count==4)
  45.  
  46. {
  47. echo '</tr><tr>';
  48.  
  49. $in_row_count=0;
  50. }
  51.  
  52.  
  53.  
  54. }
  55.  
  56. echo "</tr></table><br><br>";
  57.  


Pozdrawiam
kilas88
Do wyszukiwania plików w określonym formacie świetnie nadaje się glob.
Pawel_W
  1. $i<=count($pliki)-1

dlaczego nie
  1. $i<count($pliki)

? smile.gif

i tak w ogóle to bardziej optymalnie byłoby
  1. for($i=0 ,$c=count($pliki);$i<$c;$i++)
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.