Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: skrypt galerii - prosze o pomoc
Forum PHP.pl > Forum > Przedszkole
Przemo1980
Witam,

chcialbym napisac prosty skrypt ktory pobiera zdjecia z danego katalogu i wyswietla je w dwoch kolumnach, i to wszystko.
do tej pory napisalem taki kod ale mam problem z tym zeby zdjecia dodawaly sie w dwoch kolumanach, najczesciej wyswietla mi sie tylko jedna kolumna z dwoma pustymi obrazakmi na poczatku ( odnosnik do katalogu a nie do konkretnego zdjecia)

  1. </head>
  2. <body>
  3. <table border=\"0\" align=\"center\" width=\"500\" height=\"308\">
  4.  <tr>
  5. <?php 
  6. $dir=&#092;"src\";
  7.  
  8. //podobno trzeba stworzyc tablice?questionmark.gif tak?questionmark.gif
  9. $file=array();
  10.  
  11. if (is_dir($dir)) { 
  12.  if ($dh=opendir($dir)) {
  13.  
  14.  while(($file=readdir($dh))!==false) {
  15.  
  16. $ile=count($file);
  17. // to ponizej to na czuja napisalem  
  18.  $files[]=$ile;
  19. if($files%2==0) {
  20. echo &#092;"<td><a href=$dir/\".$file.\" target=blank><img src=$dir/\".$file.\" style=\"border: 1px black solid\" width=170 height=138></a></td>\";
  21. } 
  22. else 
  23. { 
  24. echo &#092;"<td><a href=$dir/\".$file.\" target=blank><img src=$dir/\".$file.\" style=\"border: 1px black solid\" width=170 height=138></a></td></tr><tr>\";
  25. } 
  26.  }
  27. closedir($dh); 
  28.  } 
  29. } 
  30.  
  31.  
  32.  
  33.  
  34. ?>



prosze o pomoc bo mi nerwy juz wysiadą sad.gif
tiraeth
sprawdź to:
  1. <table border=\"0\" align=\"center\" width=\"500\" height=\"308\">
  2. <tr>
  3. <?php
  4. $dir = &#092;"img\";
  5.  
  6. $i = 0; # potrzebne do wprowadzania <tr>
  7.  
  8. if(is_dir($dir))
  9. {
  10.  if($dh=opendir($dir))
  11.  {
  12. while(($file=readdir($dh)) !== false)
  13. {
  14.  if($file !== '.' && $file !== '..')
  15.  {
  16. if($i%2)
  17. {
  18.  echo '<td>
  19. <a href='.$dir.'/'.$file.' target=\"blank\">
  20.  <img src='.$dir.'/'.$file.' style=\"border: 1px black solid\" width=\"170\" height=\"138\">
  21. </a>
  22.  </td></tr><tr>';
  23. }
  24. else
  25. {
  26.  echo '<td>
  27. <a href='.$dir.'/'.$file.' target=\"blank\">
  28.  <img src='.$dir.'/'.$file.' style=\"border: 1px black solid\" width=\"170\" height=\"138\">
  29. </a>
  30.  </td>';
  31. }
  32. $i++;
  33.  }
  34. }
  35. closedir($dh);
  36.  }
  37. }
  38. ?>
  39. </tr>
  40. </table>
Przemo1980
cud smile.gif



dzieki wielkie


a moglbys to wyjasnic jak to to dziala , bo nei zabardzo kumam. Myslalem zupelnie w inna strone a to bylo takie proste.
Volume
czy moglby mi ktos wytlumaczyc ta linijke:
  1. <?php
  2. if($file !== '.' && $file !== '..')
  3. ?>
A konkretnie to jak mam po chlopsku zrozumiec to ze zmienna $file nie jest identyczna z kropką(?) a potem z dwiema kropkami? Po co takie cos pisac?
luinnar
napisz sobie uruchom sobie coś takiego a sam zrozumiesz
  1. <?php
  2. $file = '';
  3. $dir = 'jakas/sciezka/do/katalogu/';
  4. $katalog = opendir($dir);
  5. while($file = readdir($katalog))
  6.  {
  7.   echo $file.'<BR>';
  8. }
  9. ?>
Volume
Rzyczywiscie jak sie usunie ta instrukcje to wyswietlaja sie te kropki.. ale nadal nei rozumiem dlaczego tak sie dziej - skad te kropki sie tam biorą?
aleksander
. - bierzacy katalog
.. - katalog wyżej (rodzic)
Volume
aha no to juz wszystko jasne.. rzeczywiscie tak jest jak sie wraca do katalogu nizej ../katalog. Dzieki wam za wyjasnienie.
Przemo1980
no fajnie ale ja dziala ten skrypt na samej gorze, dlaczego akurat teraz wyswietla mi sie tak ze jest w dwoch kolumnach a nie jeddenj. jak on rozpoznaje ze sa obrazki nieprzyste i parzyste.
Volume
To ze wyswietla sie w kolumnach masz dzieki operatorowi '%'
  1. <?php
  2. if($i%2)
  3. ?>
. Na razie mozliwe jest wyswietalnie tylko parami jesli chcialbys np. aby miec tyle kolumn ile ci sie wymarzy to wystarczy porawic wartosc zmiennej: $i = 0 na $si = 1 a warunek reszty dzielenia wstawic w takiej formie:
  1. <?php
  2. if(($i%4) == 0)
  3. ?>
gdzie w tym przypadku 4 to ilosc kolumn.

Mozna dla wygody wprowadzic zmienna, zeby nie szukac tego w kodzie zmienna np. $ilosc_kolumn i w calosci przypuscmy dla 3 kolumn moze to wygladac tak:
  1. <table border=\"0\" align=\"center\" width=\"500\" height=\"308\">
  2. <tr>
  3. <?php
  4. $dir = &#092;"img\";
  5.  
  6. $ilosc_kolumn = 3;
  7.  
  8. $i = 1; # potrzebne do wprowadzania <tr>
  9.  
  10. if(is_dir($dir))
  11. {
  12.  if($dh=opendir($dir))
  13.  {
  14. while(($file=readdir($dh)) !== false)
  15. {
  16.  if($file !== '.' && $file !== '..')
  17.  {
  18. if(($i % $ilosc_kolumn) == 0)
  19. {
  20.  echo '<td>
  21. <a href='.$dir.'/'.$file.' target=\"blank\">
  22.  <img src='.$dir.'/'.$file.' style=\"border: 1px black solid\" width=\"170\" height=\"138\">
  23. </a>
  24.  </td></tr><tr>';
  25. }
  26. else
  27. {
  28.  echo '<td>
  29. <a href='.$dir.'/'.$file.' target=\"blank\">
  30.  <img src='.$dir.'/'.$file.' style=\"border: 1px black solid\" width=\"170\" height=\"138\">
  31. </a>
  32.  </td>';
  33. }
  34. $i++;
  35.  }
  36. }
  37. closedir($dh);
  38.  }
  39. }
  40. ?>
  41. </tr>
  42. </table>
Przemo1980
dzieki za wyczerpujaca odpowiedz
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.