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

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

Strict Standards: Resource ID#39 used as offset, casting to integer (39) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Версия для печати :: Как избавится от ошибки "Allowed memory size"
ТвойWeb » WebMaster класс » PHP/Perl » Как избавится от ошибки "Allowed memory size"

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

1. lexa - 30 Июля, 2005 - 17:58:22 - перейти к сообщению
Доброго времени!
Возникла такая проблема. При попытке создать изображение на основе существующего (копирование графического файла с уменьшением его размера) приводит к ошибке:
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;
}

Можно ли как-то избавится от этой ошибки? Если можно, то как?
2. TvoyWeb - 30 Июля, 2005 - 18:28:37 - перейти к сообщению
lexa
Это происходит даже если ты уменьшаешь только одну картинку?
Посмотри в модах, есть мод превью картинок. Там есть функция уменьшения картинок которая работает здесь на форуме.
Возможно тебе нужно еще imagedestroy($source); и flush() .
3. lexa - 31 Июля, 2005 - 03:22:04 - перейти к сообщению
Дело в том, что эта ошибка вылетает не всегда. Закономерность понять не могу.
Локально работает все нормально, а на сервере вот такую ошибку выдает.
4. TvoyWeb - 31 Июля, 2005 - 03:27:39 - перейти к сообщению
lexa пишет:
А что делает функция flush()?

Сброс на диск. http://php.net/flush
5. lexa - 31 Июля, 2005 - 03:34:35 - перейти к сообщению
Спасибо TvoyWeb. Щас попробую на сервере
6. ETC - 31 Июля, 2005 - 07:32:17 - перейти к сообщению
Вообще, если на сервере сказано 8Mb, значит 8Mb...
7. TvoyWeb - 31 Июля, 2005 - 09:05:23 - перейти к сообщению
ETC
А это практически везде, на всех хостингах выделяют столько памяти.
8. MaG - 31 Июля, 2005 - 14:03:03 - перейти к сообщению
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?
9. RaZoR - 31 Июля, 2005 - 14:39:59 - перейти к сообщению
MaG
если бы не была включена, то вывел бы ошибку об отсутствии функции..
10. lexa - 31 Июля, 2005 - 17:25:57 - перейти к сообщению
TvoyWeb был прав. Добавил две строчки imagedestroy($source) и flush() и проблема решилась. Почти сутки этой ошибки не было. Надо было освобождать буфер после создания изображения.
Огромное спасибо за помощьЗдорово

Форум на AlfaSpace.NET


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

[Script Execution time: 0.0386]     [ 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