Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Galeria zdjęć
Forum PHP.pl > Forum > Przedszkole
Gość_Janek
Witam, mam taki kody początku galerii zdjęć:

  1. <?php
  2. $thumbs = &#092;"./thumbs\";
  3. if(!($dp = opendir($thumbs)))
  4. die(&#092;"Nie można załadować zdjęć!\");
  5. while($file = readdir($dp)) {
  6. if($file != '.' && $file != '..' && $file != 'Thumbs.db') {
  7. $images .= &#092;"$file \";
  8.  }
  9.  }
  10.  closedir($dp);
  11.  $images = explode(' ', $images);
  12. echo &#092;"<table cellspacing=\"50\" width=\"90%\">\";
  13.  for ($i=0; $i<count($images); $i++){  
  14.  echo &#092;"<tr><td><img src=\"./$thumbs/$images[$i]\" alt=\"Zdjęcie\"></td>\";
  15.  $i++;
  16.  echo &#092;"<td><img src=\"./$thumbs/$images[$i]\" alt=\"Zdjęcie\"></td></tr>\";
  17.  }
  18.  echo &#092;"</table>\";
  19. ?>


W tym kodzie jest coś nie tak, ponieważ mam w katalogu Thumbs 4 zdjęcia, a na ekranie wyświetla mi 6 (2 ostatnie to puste pola z napisem zawartym w ALT). Sprawdzilem funkcją count ile elementow zawiera $images i okazało się że 5 blink.gif Co w tym kodzie jest nie tak?
Michał2000
Czest problem... Funkcja opendir wyswietla na początku:
    .
    ..
    Dalsze pliki.xxx
Dlatego do instrukcji while traba dodac funkcje IF która nie wyswietlu dwóch pierwszych wyników smile.gif


  1.  <?php
  2. $thumbs = &#092;"./thumbs\";
  3. if(!($dp = opendir($thumbs)))
  4. die(&#092;"Nie można załadować zdjęć!\");
  5. while($file = readdir($dp))
  6. {
  7. if ($images > 1)
  8. {
  9. if($file != '.' && $file != '..' && $file != 'Thumbs.db')
  10. {
  11. $images .= &#092;"$file \";
  12. }
  13. }
  14.  }
  15.  closedir($dp);
  16.  $images = explode(' ', $images);
  17. echo &#092;"<table cellspacing=\"50\" width=\"90%\">\";
  18.  for ($i=0; $i<count($images); $i++){
  19.  echo &#092;"<tr><td><img src=\"./$thumbs/$images[$i]\" alt=\"Zdjęcie\"></td>\";
  20.  $i++;
  21.  echo &#092;"<td><img src=\"./$thumbs/$images[$i]\" alt=\"Zdjęcie\"></td></tr>\";
  22.  }
  23.  echo &#092;"</table>\";
  24. ?>


Chyba dobrze kod napisalem... winksmiley.jpg
Kinool
moze w nazwie plikow ze fotkami sa spacke?

a tak na marginesie to nie wiem po co komplikowac zycie, zamiast $images .= "$file "; nie lepiej odrazu wstawiac nazwy plikow do tablicy?? $images[]= $file; i potem nie uzywac explode bo tu moze byc przyczyna bledu


@Michał2000 do tego aby nie dodawalo katalogu wyzszego poziomu i onecnego sluzy fragment [ if($file != '.' && $file != '..' ]
Michał2000
Co maja spacje do wyswietlanie sie zbyt wielu wyników? Wyswietlają sie 6 wyników zamiast 4... Psauje. To przez te kropki...
Gość_Janek
Juz jest dobrze, wystarczy ze wywalilem to explode biggrin.gif biggrin.gif
Michał2000
Nie rozumiem tego ...
Gość_Janek
Teraz chce jeszcze do tego kodu dopisac cos takiego, ze na początku uzytkownik moze wybrac sobie jakis dział. Nazwy tych działów to w rzeczywistości mają być nazwy katalogów. Czyli ogolnie w katalogu "zdjecia" maja byc katalogi przykładowo "rosja" "francja" "wlochy" itd, itp. W kazdym z tych katalogow powinny być 2 katalogi: "thumbs" - miniaturki i "big" - normalne zdjecia. No i teraz nie bardzo wiem jak to zrobić, żebym mogl kliknąc na odnosnik(nazwe dzialu) i zeby mnie dobrze do odpowiedniego katalogu przekierowalo.
Mam nadzieje ze wiecie o co mi chodzi bo troche zamotałem biggrin.gif biggrin.gif
Gość_Janek
  1. <?php
  2. $thumbs = &#092;"thumbs\";
  3. $big = &#092;"big\";
  4. $zdjecia = &#092;"zdjecia\";
  5. if (!isset($submit))
  6. {
  7. if(!($dp = opendir($zdjecia)))
  8. die(&#092;"Nie można załadować zdjęć!\");
  9. while ($dir = readdir($dp)) {
  10. if($dir != '.' && $dir != '..') {
  11. $dzial[]= $dir;
  12. }
  13. }
  14. echo &#092;"<form method=\"get\" action=zdjecia.php>\";
  15. for($i=0; $i<count($dzial); $i++){
  16. echo &#092;"$dzial[$i] <input type=\"radio\" name=\"dzial\" value=$dzial[$i]><br>\";
  17. }
  18. echo &#092;"<input type=\"submit\" name=\"submit\" value=\"wybierz\">\";
  19. echo &#092;"</form>\";
  20. closedir($dp);
  21. }
  22. else{
  23. if(!($dp = opendir($thumbs)))
  24. die(&#092;"Nie można załadować zdjęć!\");
  25. while($file = readdir($dp)) {
  26. echo&#092;"$file<br>\";
  27. if($file != '.' && $file != '..' && $file != 'Thumbs.db') {
  28. $images[]= $file;
  29. }else{
  30. echo &#092;"<p><h4>DZIAŁ NIE ZAWIERA OBECNIE ŻADNYCH ZDJĆ!</h4></p>\";
  31. break;
  32. }
  33.  }
  34.  closedir($dp);
  35. echo &#092;"<table cellspacing=\"50\" width=\"90%\">\";
  36.  for ($i=0; $i<count($images); $i++){
  37.  echo &#092;"<tr><td><a href=\"javascript:openWindow('./$dzial/$big/$images[$i]', 500, 500 )\"><img src=\"./$dzial/$thumbs/$images[$i]\" alt=\"Zdjęcie\" BORDER=\"0\"></a></td>\";
  38.  $i++;
  39.  if($i==count($images)) break;
  40. echo &#092;"<td><a href=\"javascript:openWindow('./$dzial/$big/$images[$i] ', 500, 500)\"><img src=\"./$dzial/$thumbs/$images[$i]\" alt=\"Zdjęcie\" BORDER=\"0\"></a></td></tr>\";
  41.  }
  42.  echo &#092;"</table>\";
  43.  }
  44.  
  45. ?>


Zrobilem cos takiego, ale oczywiscie to jest zle biggrin.gif W tym momencie gdzie jest:
  1. <?php
  2.  
  3. else{
  4. if(!($dp = opendir($thumbs)))
  5. die(&#092;"Nie można załadować zdjęć!\");
  6.  
  7. ?>

Trzeba to jakos tak napisac zeby sie dostać do katalogu, przykladowo "zdjecia/francja/thumbs". Tylko nie wiem jak tongue.gif
Gość_Janek
Z dzialami sobie poradzilem, natomiast jest problem. Mianowicie kiedy skrypt znajdzie w w katalogu "zdjecia" dział ktory uzytkownik sobie wybral, a w katalogu z tym dzialem nie ma katalogow "thumbs" i "big" wyswietla się błąd "Nie mozna wyświetlić działu" - czyli wszystko pieknie, natomiast problem jest dalej - ucina się reszta strony czyli stopka itd sad.gif Jak mozna temu zapobiec? Daje moze caly kod tego:

  1. <?php
  2. $thumbs = &#092;"thumbs\";
  3. $big = &#092;"big\";
  4. $zdjecia = &#092;"./zdjecia\";
  5. if (!isset($submit))
  6. {
  7. if(!($dp = opendir($zdjecia)))
  8. die(&#092;"Nie można załadować zdjęć!\");
  9. while ($dir = readdir($dp)) {
  10. if($dir != '.' && $dir != '..') {
  11. $dir = trim($dir);
  12. $dzial[]= $dir;
  13. }
  14. }
  15. echo &#092;"<div><table width=\"75%\"><tr><td><h4>WYBIERZ DZIAŁ</h4><form method=\"get\" action=zdjecia.php>\";
  16. for($i=0; $i<count($dzial); $i++){
  17. echo &#092;"<p><input type=\"radio\" name=\"dzial\" value=$dzial[$i]> $dzial[$i]</p>\";
  18. }
  19. echo &#092;"<input type=\"submit\" name=\"submit\" value=\"wybierz\">\";
  20. echo &#092;"</form></td></tr></table></div>\";
  21. closedir($dp);
  22. }
  23. else{
  24. if(!($dp = opendir(&#092;"$zdjecia/$dzial/$thumbs\"))){
  25. die(&#092;"Nie można załadować działu!\");
  26. }
  27. while($file = readdir($dp)) {
  28. $ciag = &#092;".jpg$|.png$|.gif$\";
  29. $rozszerzenie = ereg($ciag, $file);
  30. if($file != '.' && $file != '..' && $file != 'Thumbs.db' && $rozszerzenie) {
  31. $images[]= $file;
  32. }
  33.  }
  34.  closedir($dp);
  35.  echo &#092;"<h4>$dzial</h4>\";
  36. echo &#092;"<table cellspacing=\"50\" width=\"90%\">\";
  37.  for ($i=0; $i<count($images); $i++){
  38.  list($width, $height, $type, $attr) = getimagesize(&#092;"$zdjecia/$dzial/$big/$images[$i]\");
  39. switch($type){
  40. case '1':
  41. $type = 'Typ pliku: gif';
  42. break;
  43. case '2':
  44. $type = 'Typ pliku: jpg';
  45. break;
  46. case '3':
  47. $type = 'Typ pliku: png';
  48. break;
  49. case '6';
  50. $type = 'Typ pliku: bmp';
  51. break;
  52. }
  53. $size = filesize(&#092;"$zdjecia/$dzial/$big/$images[$i]\");
  54. $size = round($size/1024);
  55.  echo &#092;"<tr><td><a href=\"javascript:openWindow('$zdjecia/$dzial/$big/$images[$i]', 500, 500 )\"><img src=\"$zdjecia/$dzial/$thumbs/$images[$i]\" alt=\"Zdjęcie\" BORDER=\"0\"></a><br>$type<br>Wysokość: $height px
  56.  <br>Szerokośc: $width px</td>&#092;";
  57.  $i++;
  58.  if($i==count($images)) break;
  59. echo &#092;"<td><a href=\"javascript:openWindow('$zdjecia/$dzial/$big/$images[$i] ', 500, 500)\"><img src=\"$zdjecia/$dzial/$thumbs/$images[$i]\" alt=\"Zdjęcie\" BORDER=\"0\"></a> <br>$type<br>Wysokość: $height px
  60. <br>Szerokośc: $width px<br>Rozmiar: $size KB</td></tr>&#092;";
  61.  }
  62.  echo &#092;"</table>\";
  63.  }
  64. powrot();
  65. ?>
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.