Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Miniaturki zdjęć i Allowed memory size, PHP Fatal error: Allowed memory size of 67108864 bytes exhausted
Fargo17
post
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 4.02.2008
Skąd: Białystok

Ostrzeżenie: (0%)
-----


  1. <?php
  2.  header('Content-type: image/jpeg');
  3.   define ('SZEROKOSC',130);
  4.   define ('WYSOKOSC',100);
  5.    $orginal=imagecreatefromjpeg($_GET['fotka']);
  6.     list($org_szer,$org_wys)=getimagesize($_GET['fotka']);
  7.      $minitaturka=imagecreatetruecolor(SZEROKOSC,WYSOKOSC);
  8.      imagecopyresized($minitaturka, $orginal, 0, 0, 0, 0, SZEROKOSC, WYSOKOSC, 20, 20, $org_szer, $org_wys);
  9.      imagejpeg($minitaturka, NULL, 50);
  10.  ?>



Przeszukałem google w poszukiwaniu rozwiązania, nic. Otrzymuję taki komunikat:

PHP Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 12224 bytes) in /home/pineawaw/public_html/mini.php on line 5

Pisałem już do firmy hostingującej o zwiększenie mi memory_limit z 32M na 64M co też uczynili. Próbowałem też dodać w skrypcie
  1. <?php
  2. ini_set('memory_limit', '64M');
  3. ?>

Zero efektu. Skrypt nie może stworzyć miniaturki oryginalnego zdjęcia nawet o rozmiarze 180kb. Szczerze powiedziawszy nie znam się na programowaniu, skrypt jest ogólnie dostępny w internecie. Chciałbym się dowiedzieć, co mogę zrobić by to zadziałało. Na ustawieniach serwera z memory_limit 128M nie ma tego problemu, miniatury tworzą się normalnie.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Fargo17
post
Post #2





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 4.02.2008
Skąd: Białystok

Ostrzeżenie: (0%)
-----


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

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.10.2025 - 10:55