Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Allowed memory size of 8388608 bytes exhausted (tried to allocate 2048 bytes) in
 
 автор: Ressfourt   (15.11.2005 в 22:37)   письмо автору
 
 

Allowed memory size of 8388608 bytes exhausted (tried to allocate 2048 bytes) in обьясните что это за ошибка

   
 
 автор: cheops   (15.11.2005 в 22:56)   письмо автору
 
   для: Ressfourt   (15.11.2005 в 22:37)
 

Памяти не хватает - под PHP-скрипт (под сам скрипт и его данные) выделяется ограниченный объём памяти (в вашем случае 8 Мб) - вы выходите за эти пределы.

PS Используйте unset() для уничтожения не нужных вам переменных и массивов, которые могут занимать значительный объём.

   
 
 автор: Ressfourt   (15.11.2005 в 23:05)   письмо автору
 
   для: cheops   (15.11.2005 в 22:56)
 

просто странно , при загрузке фотографий он только на 1 фотографию фыдает ошибку под другие нет хотя сам файл 430 кб.. да у меня стоит ограничение если файл превышает 500 кб он не загружается

   
 
 автор: Loki   (15.11.2005 в 23:19)   письмо автору
 
   для: Ressfourt   (15.11.2005 в 23:05)
 

а можете привести фрагмент кода... я тут недавно с такой же проблемой сражался:)

   
 
 автор: Ressfourt   (15.11.2005 в 23:28)   письмо автору
 
   для: Loki   (15.11.2005 в 23:19)
 

без проблем эта функция уменьшения изображения я ее полностью на массивах использовал

    function resize($resource, $destination, $width, $bordersize = NULL, $bordercolor = NULL, $text = NULL)
    {
    $images['resource'] = $resource;
    $images['destination'] = $destination;
    $images['width'] = $width;
    $imgaes['border'] = $bordersize;
    $images['bordercolor'] = $bordercolor;
    $images['text'] = $text;
    $image = getimagesize($images['resource']);
    $images['factor'] = $image[0]/$image[1];
    $images['height']= floor($images['width']/$images['factor']);
    $images['truecolor']= imagecreatetruecolor($images['width'],$images['height']);
    $images['mime'] = strtolower(substr($image['mime'],strpos($image['mime'],'/')+1));
    $images['creater'] = "imagecreatefrom".$images['mime'];
    $images['source'] = $images['creater']($images['resource']);
    ImageCopyResampled($images['truecolor'],$images['source'],0,0,0,0,$images['width'],$images['height'],$image[0],$image[1]); 
    $images['border']  = hex2rgb($images['bordercolor']); 
    $images['border'] = imagecolorallocate($images['truecolor'],$images['border'][1],$images['border'][2],$images['border'][3]);
    


    imagerectangle($images['truecolor'],0,0,$images['width']-1,$images['height']-1,$images['border']);
    imagejpeg($images['truecolor'],$images['destination'],100);
    imagedestroy($images['truecolor']);
    imagedestroy($images['source']);
     }

   
 
 автор: cheops   (16.11.2005 в 01:46)   письмо автору
 
   для: Ressfourt   (15.11.2005 в 23:28)
 

В дебрях GDLib вполне может памяти на 8 Мб наплодится...

   
 
 автор: Ressfourt   (16.11.2005 в 02:39)   письмо автору
 
   для: cheops   (16.11.2005 в 01:46)
 

но почему на одни изображения ошибку не выдает а на другие выдает.. если чуть более 400 килобайт то ошибка если меньше то ошибки нет :(

может подскажешь как высвободить память для выполнения функции ресайизинга фоток без php_ini

ведь каким то образом делают порталы с фотками и с бакраундами а там файлы выше 400 килобайт и 500 килобайт я не думаю что они увеличиват обьем памяти для скрипта :(

   
 
 автор: Akira   (15.11.2005 в 23:38)   письмо автору
 
   для: Loki   (15.11.2005 в 23:19)
 

:))) Но все же решили ее а?

   
 
 автор: Ressfourt   (15.11.2005 в 23:43)   письмо автору
 
   для: Akira   (15.11.2005 в 23:38)
 

да нет проблема все так же висит :(

   
 
 автор: Loki   (16.11.2005 в 09:30)   письмо автору
 
   для: Akira   (15.11.2005 в 23:38)
 

Да:) все оказалось от жадности:)

   
 
 автор: Ressfourt   (16.11.2005 в 13:16)   письмо автору
 
   для: Loki   (16.11.2005 в 09:30)
 

ну так что ни кто ничего не посоветует как избежать проблему с мемори лимит без ini_set("memory_limit","")

просто я нашел только 1 способ решение проблемы... если фотка по ширине и высоте выше 1200 пикселей увеличивать мемори лимит чреез Ini_set ... кто нибудь знает более улучшенный способ решения проблемы... да и сразу говорю можно сразу исключить imagemagic

   
 
 автор: cheops   (16.11.2005 в 14:03)   письмо автору
 
   для: Ressfourt   (16.11.2005 в 13:16)
 

Попробуйте другой аглоритм http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=145 - уменьшите число функций, поставьте
<?php
imagedestroy
($images['source']);
?>

по-раньше, вам же уже в середине скрипта $images['source'] не нужен, как только нет в нём надобности - уничтожайте.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования