Strict Standards: Resource ID#18 used as offset, casting to integer (18) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#23 used as offset, casting to integer (23) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#25 used as offset, casting to integer (25) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#26 used as offset, casting to integer (26) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Как избавится от ошибки "Allowed memory size"
ТвойWeb ТвойWeb
Качественный Европейский хостинг
Форум для чайников
 Чат на форуме      Помощь      Поиск      Пользователи


 Страниц (3): [1] 2 3 »   

> Без описания
lexa
Отправлено: 30 Июля, 2005 - 17:58:22
Post Id



Newbie


Покинул форум
Сообщений всего: 32
Дата рег-ции: Февр. 2005  
Откуда: Москва

Карма 0




Доброго времени!
Возникла такая проблема. При попытке создать изображение на основе существующего (копирование графического файла с уменьшением его размера) приводит к ошибке:
PHP Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 11316 bytes).
Насколько я понял - это нехватка памяти для обработки файла и в результате PHP выдает ошибку.
Вот код функции:
CODE:

Function CreateImage($filename, $image)
{
$array = getimagesize($filename);
$newwidth = 200;
$newheight = 200;
$i = imagecreatetruecolor($newwidth, $newheight);
$source = imagecreatefromjpeg($filename);
imagecopyresized($i, $source, 0, 0, 0, 0, $newwidth, $newheight, $array[0], $array[1]);
imagejpeg($i, $image);
imagedestroy($i);
return $image;
}

Можно ли как-то избавится от этой ошибки? Если можно, то как?
 
 Top
TvoyWeb Администратор
Отправлено: 30 Июля, 2005 - 18:28:37
Post Id



Главный здесь


Покинул форум
Сообщений всего: 7072
Дата рег-ции: Нояб. 2003  
Откуда: Tashkent Uz

Карма 52




lexa
Это происходит даже если ты уменьшаешь только одну картинку?
Посмотри в модах, есть мод превью картинок. Там есть функция уменьшения картинок которая работает здесь на форуме.
Возможно тебе нужно еще imagedestroy($source); и flush() .
 
 Top
lexa
Отправлено: 31 Июля, 2005 - 03:22:04
Post Id



Newbie


Покинул форум
Сообщений всего: 32
Дата рег-ции: Февр. 2005  
Откуда: Москва

Карма 0




Дело в том, что эта ошибка вылетает не всегда. Закономерность понять не могу.
Локально работает все нормально, а на сервере вот такую ошибку выдает.
 
 Top
TvoyWeb Администратор
Отправлено: 31 Июля, 2005 - 03:27:39
Post Id



Главный здесь


Покинул форум
Сообщений всего: 7072
Дата рег-ции: Нояб. 2003  
Откуда: Tashkent Uz

Карма 52




lexa пишет:
А что делает функция flush()?

Сброс на диск. http://php.net/flush
 
 Top
lexa
Отправлено: 31 Июля, 2005 - 03:34:35
Post Id



Newbie


Покинул форум
Сообщений всего: 32
Дата рег-ции: Февр. 2005  
Откуда: Москва

Карма 0




Спасибо TvoyWeb. Щас попробую на сервере
 
 Top
ETC Администратор
Отправлено: 31 Июля, 2005 - 07:32:17
Post Id



Flash-coder


Покинул форум
Сообщений всего: 5275
Дата рег-ции: Дек. 2003  
Откуда: TimeZero

Карма 26




Вообще, если на сервере сказано 8Mb, значит 8Mb...
 
 Top
TvoyWeb Администратор
Отправлено: 31 Июля, 2005 - 09:05:23
Post Id



Главный здесь


Покинул форум
Сообщений всего: 7072
Дата рег-ции: Нояб. 2003  
Откуда: Tashkent Uz

Карма 52




ETC
А это практически везде, на всех хостингах выделяют столько памяти.
 
 Top
MaG
Отправлено: 31 Июля, 2005 - 14:03:03
Post Id


Newbie


Покинул форум
Сообщений всего: 2
Дата рег-ции: Июль 2005  

Карма 0




lexa пишет:
Доброго времени!
Возникла такая проблема. При попытке создать изображение на основе существующего (копирование графического файла с уменьшением его размера) приводит к ошибке:
PHP Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 11316 bytes).
Насколько я понял - это нехватка памяти для обработки файла и в результате PHP выдает ошибку.
Вот код функции:
CODE:

Function CreateImage($filename, $image)
{
$array = getimagesize($filename);
$newwidth = 200;
$newheight = 200;
$i = imagecreatetruecolor($newwidth, $newheight);
$source = imagecreatefromjpeg($filename);
imagecopyresized($i, $source, 0, 0, 0, 0, $newwidth, $newheight, $array[0], $array[1]);
imagejpeg($i, $image);
imagedestroy($i);
return $image;
}

Можно ли как-то избавится от этой ошибки? Если можно, то как?


А у тебя на хосте включена библеотека GD?
 
 Top
RaZoR
Отправлено: 31 Июля, 2005 - 14:39:59
Post Id



Full Member


Покинул форум
Сообщений всего: 225
Дата рег-ции: Март 2005  
Откуда: Оренбург

Карма 0




MaG
если бы не была включена, то вывел бы ошибку об отсутствии функции..
 
 Top
lexa
Отправлено: 31 Июля, 2005 - 17:25:57
Post Id



Newbie


Покинул форум
Сообщений всего: 32
Дата рег-ции: Февр. 2005  
Откуда: Москва

Карма 0




TvoyWeb был прав. Добавил две строчки imagedestroy($source) и flush() и проблема решилась. Почти сутки этой ошибки не было. Надо было освобождать буфер после создания изображения.
Огромное спасибо за помощьЗдорово
 
 Top
Страниц (3): [1] 2 3 »
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0, скрытых: 0)
« PHP/Perl »


Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только администраторы и модераторы могут отвечать на сообщения в этом разделе.
 



Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.046]     [ Gzipped ]



Notice: ob_end_flush(): failed to send buffer of ob_gzhandler (1) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/page_tail.php on line 33