Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Galeria + sortowanie
Forum PHP.pl > Forum > PHP
michu9010
witam mam maly problem z sortowaniem plikow. mam pliki 1a.jpg 1.jpg 10a.jpg itd.
zamiast wyswitlac je po kolei (1.jpg , 1a.jpg , 2.jpg ) to wyswietla 1.jpg , 1a.jpg 10.jpg
i jak zrobic zeby wyswietlal normalnie rozsnaco questionmark.gif i przystosowac go do tej galerii

a to jest skrypt galerii
mini.php (tworzy miniatury)
  1. <?php
  2.    
  3.   /*
  4.     Ten plik jako wynik swojego dzialania bedzie generowal miniaturke
  5.     zdjecia przekazanego jako parametr wywolania skryptu
  6.     (np. <a href=\"http://szabloniki.com/mini.php?fotka=obrazek.jpg)\" target=\"_blank\">http://szabloniki.com/mini.php?fotka=obrazek.jpg)</a>, dlatego tez
  7.     musimy poinformowac przegladarde aby traktowal go jak plik graficzny.
  8.     */
  9.    header('Content-type: image/jpeg');
  10.    
  11.    /* Definiujemy wymiary miniaturki */
  12.    define ('SZEROKOSC',100);
  13.    define ('WYSOKOSC',100);
  14.    
  15.    
  16.    /* Otwieramy orginalne zdjecie przekazane w adresie strony */
  17.    $orginal=imagecreatefromjpeg($_GET['fotka']);
  18.    
  19.    /*
  20.     Pobieramy wymiary orginalnego zdjecia, sa one potrzebne dla
  21.     dla wygenerowania pomniejszonej wersji.
  22.     */
  23.    list($org_szer,$org_wys)=getimagesize($_GET['fotka']);
  24.    
  25.    /* Tworzymy nowy obraz o ustalonych wczesniej wymiarach miniaturki */
  26.    $minitaturka=imagecreatetruecolor(SZEROKOSC,WYSOKOSC);
  27.    
  28.    /*
  29.     Przy pomocy tej funkcji tworzymy miniature pliki graficznego.
  30.     Jesli dysponujemy odpowiednio szybka maszyna, lepszy efekt uzyskamy
  31.     zamieniajac ja na:
  32.     
  33.     imagecopyresampled($minitaturka,$orginal, 0, 0, 0, 0 ,SZEROKOSC,WYSOKOSC,$org_szer,$org_wys);
  34.     
  35.     ktora oprocz zmniejszenia fizycznych rozmiarow, wygladza krawedzie oraz poprawia ostrosc.
  36.     */
  37.    imagecopyresized($minitaturka,$orginal, 0, 0, 0 , 0 ,SZEROKOSC,WYSOKOSC,$org_szer,$org_wys);
  38.    
  39.    /*
  40.     Gotowa miniature wysylamy do przegladarki. Ostatni parametr okresla jakosc
  41.     generowanego brazu (0-100%). Czym mniejsza wartosc tym gorsza jakosc
  42.     zato rozmiar pliku znacznie mniejszy
  43.     */
  44.    imagejpeg($minitaturka,NULL,70);
  45. ?>


a to plik wyswietlajacy cala galerie
  1. <?php
  2.  
  3. /*
  4. Ustalamy w jakim katalogu znajduja sie zdjecia oraz
  5. ile wierszy i kolumn bedzie tworzyc galeria jednej strony.
  6. */
  7. define('KATALOG_ZDJEC','./img/');
  8. define('WIERSZY',5);
  9. define('KOLUMN',4);
  10.  
  11. /*
  12. Przeczesujemy wybrana lokalizacje w poszukiwaniu plikow .jpg
  13. i zapujemy ich nazwy w tablicy $album. Wszelkie informacje o
  14. plikach beda teraz odczytywane z tej tablicy dzieki czemu ograniczymy
  15. mielenie dyskiem do minimum :)
  16. */
  17. $x=0;
  18. foreach (glob(KATALOG_ZDJEC."*.jpg") as $zdjecie) $album[$x++]=$zdjecie;
  19.  
  20. /* Zliczamy ile fotek lacznie pojawi sie na jednej stronie oraz calkowita ich liczbe */
  21. $na_stronie=WIERSZY*KOLUMN; $razem=count($album);
  22.  
  23. /*
  24. Dzieki czemu mozemy wyliczyc liczbe stron. Czesc calkowita z dzielenia
  25. liczby fotek przez liczbe zdjec na jednej stronie da laczna liczbe stron.
  26. Jesli zostanie jakas reszta z dzielenia to znaczy ze potrzebujemy jeszcze
  27. jednej strony dla wyswietlenie kilku ostatnich zdjec
  28. */
  29. $stron=floor($razem/$na_stronie); $stron+=$razem % $na_stronie ? 1:0;
  30.  
  31. /*
  32. Zmienna $pokaz_strone przechowuje nr. akutalnej strony do wyswietlenia.
  33. Jej wartosc odczytywana jest z adresu strony (np. <a href=\"http://szabloniki.com/galeria.php?pokaz_strone=4)\" target=\"_blank\">http://szabloniki.com/galeria.php?pokaz_strone=4)</a>
  34. Jesli wartosc nie zostala ustalona (http://szabloniki.com/galeria.php)
  35. przyjmujemy ze wyswietlamy strone 1
  36. */
  37. $pokaz_strone=$_GET['pokaz_strone']; if (!isset($pokaz_strone)) $pokaz_strone=1;
  38.  
  39.  
  40. /*
  41. Bedziemy odczytywac tylko te fragmenty tablicy $album ktore zawieraja
  42. zdjecia wystepujace na danej stronie, dlatego potrzebujemy ustalic
  43. jaki bedzie to obszar
  44. */
  45. $start=($pokaz_strone-1) * $na_stronie;
  46. $stop=($pokaz_strone==$stron) ? $razem % $na_stronie: $na_stronie; $stop+=$start;
  47.  
  48. echo "<table style='border: none'><tr>";
  49.  
  50. /* Z wybranych elementow rusyjemy tabelke */
  51. for ($x=$start;$x<$stop;$x++){
  52.  
  53. /* Jesli osiagnieto ustalona liczbe kolumn przechodzimy do nastepnego wiersza */
  54. if (!($x % KOLUMN)) echo "</tr><tr>";
  55.  
  56. /*
  57. Tworzymy obrazek ktory wygenerowany zostanie przez skrypt mini.php na podstawie
  58. przekazanej nazwy pliku
  59. */
  60. echo "<td><a href=\"".$album[$x]."\"  rel=\"lightbox[roadtrip]\" title=\"\"  ><img src=\"mini.php?fotka="."{$album[$x]}\" border=\"0\" ></a>";
  61.  
  62. /*
  63. Ponizsze linie sprawdzaja czy w katalogu ze zdjeciem istnieje taki sam
  64. plik z roszerzeniem .txt. Jesli tak, wyswietla jego zawartosc pod zdjeciem
  65. */
  66. list($info)=explode('.',basename($album[$x]));
  67. if(file_exists(KATALOG_ZDJEC.$info.".txt")){
  68. $plik=fopen(KATALOG_ZDJEC.$info.".txt","r");
  69. $opis=fgets($plik);
  70. fclose($plik);
  71. echo "<br>$opis";
  72. }
  73. echo "</td>";
  74. }
  75. echo "</tr><table>";
  76.  
  77. /* Jesli mamy wiecej niz jedna strone wyswietlimy ich liste */
  78. if ($stron>1){
  79. echo "<br>";
  80. echo "Strona: "; for($x=1;$x<=$stron;$x++) {
  81.  
  82. /* Bierzaca strone pogrubimy a pozostale beda linkami z odpowiednim adresem */
  83. if ($pokaz_strone==$x){echo "<b> $x </b>";} else {echo "<a href=\"index.php?id=galeria&pokaz_strone=$x\"> $x </a>";}
  84. }
  85. }
  86.  
  87. ?>


dziekuje pozdrawiam
Pilsener
Manual nie gryzie:
http://pl.php.net/manual/pl/function.natsort.php
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.