Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Miniaturki-raz są robione raz nie przez skrypt
Forum PHP.pl > Forum > Przedszkole
mp3-10
Oto mój skrypt tworzenia miniaturek do grafiki, która jest dodawana na mój portal. Lecz mam poroblem z nim, ponieważ skrypt nie wiem czemu nie chce robić miniaturek np. gdy rozszerzenie jest np. JPG, GIF. Do rozszerzeń jpg i gif(pisane małymi) robi miniaturki. Czy ktoś mógłby mi pokazać w którym miejscu jest błąd.

Z góry dziękuję.

  1. <?php
  2. function tworz_miniaturke($plik_katalog, $plik_nazwa, $miniaturka_katalog, $miniaturka_nazwa, $max_szerokosc, $max_wysokosc)
  3. {
  4. $miniaturka_nazwa = str_replace('{nazwa}', $plik_nazwa, $miniaturka_nazwa);
  5.  
  6. $plik_rozszerzenie = explode('.', $plik_katalog.$plik_nazwa);
  7. $plik_rozszerzenie = $plik_rozszerzenie[count($plik_rozszerzenie)-1];
  8.  
  9. $dane_obr=getimagesize($plik_katalog.$plik_nazwa);
  10. switch ($plik_rozszerzenie)
  11. {
  12. case 'jpg':
  13. case 'jpeg': $img = imagecreatefromjpeg($plik_katalog.$plik_nazwa); break;
  14. case 'gif':  $img = imagecreatefromgif($plik_katalog.$plik_nazwa); break;
  15. case 'png':  $img = imagecreatefrompng ($plik_katalog.$plik_nazwa); break;
  16. }
  17.  
  18. if (!$img)
  19. return false;
  20.  
  21. if ($dane_obr[0] > $max_szerokosc || $dane_obr[1] > $max_wysokosc)
  22. {
  23. $wysokosc = intval((($max_szerokosc/$dane_obr[0]))*$dane_obr[1]);
  24. $szerokosc = intval($max_szerokosc);
  25. if ($wysokosc > $max_wysokosc)
  26. {
  27. $wysokosc = intval($max_wysokosc);
  28. $szerokosc = intval((($max_wysokosc/$dane_obr[1]))*$dane_obr[0]);
  29. }
  30.  
  31. $min = imagecreatetruecolor($szerokosc, $wysokosc);
  32. if (!$min)
  33. {
  34. imagedestroy($img);
  35. return false;
  36. }
  37. imagecopyresized($min, $img, 0, 0, 0, 0, $szerokosc, $wysokosc, $dane_obr[0],$dane_obr[1]);
  38.  
  39. switch ($plik_rozszerzenie)
  40. {
  41. case 'jpg':
  42. case 'jpeg': imagejpeg($min, $miniaturka_katalog.$miniaturka_nazwa, 100); break;
  43. case 'gif':  imagegif($min, $miniaturka_katalog.$miniaturka_nazwa, 100); break;
  44. case 'png':  imagepng($min, $miniaturka_katalog.$miniaturka_nazwa, 100); break;
  45. }
  46. }
  47. else
  48. {
  49. $min = imagecreatetruecolor($dane_obr[0], $dane_obr[1]);
  50. if (!$min)
  51. {
  52. imagedestroy($img);
  53. return false;
  54. }
  55. imagecopy( $min, $img, 0, 0, 0, 0, $dane_obr[0], $dane_obr[1] );
  56. switch ($plik_rozszerzenie)
  57. {
  58. case 'jpg':
  59. case 'jpeg': imagejpeg( $min, $miniaturka_katalog.$miniaturka_nazwa, 100 ); break;
  60. case 'gif':  imagegif( $min, $miniaturka_katalog.$miniaturka_nazwa, 100 ); break;
  61. case 'png':  imagepng( $min, $miniaturka_katalog.$miniaturka_nazwa, 100 ); break;
  62. }
  63. }
  64.  
  65. imagedestroy($img);
  66. imagedestroy($min);
  67. return true;
  68. }
  69. ?>
Inti
Po prostu PHP rozróżnia wielkość liter i napisa JPG to nie to samo co jpg

Wystarczy by po ustaleniu rozszerzenia pliku, zamienić wszystkie duże litery na małe za pomocą funkcji
strtolower - link do manual

Wtedy obojętnie jaka by nie była wartść rozszerzenia - pisana z dużej, czy małej to sotatecznie pasować będzie do wartości sprawdzanych przez ciebie

Pozdrawiam Inti
mp3-10
Cytat(Inti @ 27.07.2008, 11:06:45 ) *
Po prostu PHP rozróżnia wielkość liter i napisa JPG to nie to samo co jpg

Wystarczy by po ustaleniu rozszerzenia pliku, zamienić wszystkie duże litery na małe za pomocą funkcji
strtolower - link do manual

Wtedy obojętnie jaka by nie była wartść rozszerzenia - pisana z dużej, czy małej to sotatecznie pasować będzie do wartości sprawdzanych przez ciebie

Pozdrawiam Inti

dzięki !
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.