Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: porcjowanie...
Forum PHP.pl > Forum > PHP
kamail
Witam mam problem z porcjowaniem miniatur w galerii. Probowalem na rozne sposoby, ale nie moglem sobie poradzic... Oto kod mojej galerii i chialbym aby na jednej stronie bylo wygenerowanych np. 20 miniatur:
  1. <?php
  2. $sciezka = $_GET['sciezka'];
  3. $dir = $sciezka; // Definicja katalogu.
  4. $ilosc=0;
  5. $files = scandir($dir); // Wczytywanie wszystkich obrazów do tablicy.
  6.  
  7. // Wyświetlanie każdego obrazu jako łącza do funkcji JavaScript.
  8. foreach ($files as $image) {
  9.  
  10. if (substr($image, 0, 1) != '.') { // Ignorowanie każdego łańcucha zaczynającego się od kropki.
  11.  
  12. // Pobieranie rozmiaru obrazu w pikselach.
  13. $image_size = getimagesize ("$dir/$image");
  14.  
  15. // Obliczanie rozmiaru obrazu w kilobajtach.
  16. $file_size = round ( (filesize ("$dir/$image")) / 1024) . "kb";
  17.  
  18. echo "<a href=\"javascript:create_window('$dir$image',$image_size[0],$image_size[1])\"><img src=\"$dir$image\" width=\"200\"></a> ";
  19.  
  20. } 
  21.  
  22. } 
  23. ?>

Bardzo prosze o pomoc sadsmiley02.gif
^bmb
Witam!

No jesli ma to być wyswietlane tylko x zdjec z tablicy w ktorej znajduja sie wszystkie to chyba podaruj sobie foreach .

Ja bym na twoim miejscu w urlu przekazywal liczbe wskazujaca od ktorego elementu tablicy $files ma zaczac wyswietlanie obrazkow czyli np.

  1. <?php
  2. if(isset($_GET['start']) && $_GET['start']!="") $start=$_GET['start'];
  3. else $start=0;
  4. $ile=20;
  5. $all = count($files)-1;
  6. if(($start+$ile)>=$all) $stop=$all;
  7. else $stop=$start+$ile;
  8. ...
  9.  
  10. a pozniej
  11.  for($i=$start;$i<=$stop;$i++)
  12. {
  13. ....
  14. }
  15.  
  16. ?>

P.S. Sciezka do katalogu przekazywana GET-em? smile.gif))
kamail
hmmm a moglbys mi powiedziec co gdzie mam wstawic? bo kompletnie nie wiem o co chodzi smile.gif i czym mam zastapic foreach tongue.gif ? Bo poprostu wymiekam...
^bmb
  1. <?php
  2.  
  3.  
  4. $dir = "sciezka"; // Definicja katalogu.-- na sztywno albo jakies id przesylaj tylko w urlu
  5.  
  6. $files = scandir($dir); // Wczytywanie wszystkich obrazów do tablicy.
  7.  
  8. if(isset($_GET['start']) && $_GET['start']!="") $start=$_GET['start'];
  9. else $start=0;
  10. $ile=20;//ilosc obrazkow wysw na 1 stronie
  11. $all = count($files)-1; // liczba obrazkow -1 bo liczone od 0
  12. if(($start+$ile)>=$all) $stop=$all;
  13. else $stop=$start+$ile;
  14.  
  15.  
  16.  for($i=$start;$i<=$stop;$i++)
  17. {
  18. if (substr($files[$i], 0, 1) != '.') 
  19. { 
  20.  $image_size = getimagesize ("$dir/$files[$i]");
  21.  $file_size = round ( (filesize ("$dir/$files[$i]")) / 1024) . "kb";
  22.  echo "<a href=\"javascript:create_window('$dir$files[$i]',$image_size[0], $image_size[1])\"><img src=\"$dir$files[$i]\" width=\"200\"></a> ";
  23.  } 
  24. }
  25.  
  26.  
  27. ?>


O ile jakis bykow nie ma to to powinno wyswietlic 20 pierwszych . Pozniej tylko generujesz linki do tej samej strony ale z parametrem ?start=20 40 itd w zaleznosci ile masz wszystkich obrazkow
kamail
Wielgachne dzieki biggrin.gif wszystko ladnie dziala, nie wiem co bym bez Ciebie zrobil winksmiley.jpg
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.