Anna Опубликовано 27 Июня 2005 Жалоба Поделиться Опубликовано 27 Июня 2005 Пытаюсь написать мод для автоматического изменения вложенных изображений. Срабаюсь на следующей фигне....добавила в ips_kernel/class_image.php новую функцию для ресайза...в ней у меня открывается исходный файл, с помощью тамошней функции scale_image определяется нужный размер для ресайза, после чего я создаю новое изображение функцией imagecreatetruecolor. на этом месте иногда просиходит полная остановка, даже без выдачи ошибки при альтернативе OR DIE (...)т.е. он туда не попадает, а просто останавливается (белая страница). Фишка вот в чем. На небольших картинках все работает как часы - создает он изображение. А вот на картинках размером где-то 600х600 он останаваливается. Хостер (мастерхост) говорит, что есть некое ограничение на память. Как можно было бы решить эту проблему? Никто не знает, может сталкивался кто?[1119854217:1119854319]$result = $this->scale_image(array( 'max_width' => $need_width, 'max_height' => $need_height, 'cur_width' => $sourcefile_width, 'cur_height' => $sourcefile_height)); $valid_width = $result['img_width']; $valid_height = $result['img_height']; $validfile_id = @imagecreatetruecolor($valid_width, $valid_height) or die ("error creating image"); вот как раз на последем этапе он срубается, даже не выводя die()[1119854217:1119855288]Посмотрела перед последним шагом. Памяти использовано 6.3 МБ, лимит установлен 8Мб. Неужели чтоб создать изображение truecolor 600х600 нужно более 1.7 МБ? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
theIggs Опубликовано 27 Июня 2005 Жалоба Поделиться Опубликовано 27 Июня 2005 Сталкивались, блин...@imagecreatetruecolorСобака перед вызовом функции давит все ошибки, которые могут возникнуть. Собаку убери и наблюдай ошибку. Вылетает по нехватке памяти...Теоретическое решение известно: повышаем доступный скриптам объём памяти при помощи примерно такого .htaccessphp_value memory_limit 16Mили напрямую в php.ini.Поиск в Google по memory_limit даст ещё примеры... А практически - сразу после такого хостер начинает возмущаться, мол, много жрёте ресурсов и всё такое... Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Anna Опубликовано 27 Июня 2005 Автор Жалоба Поделиться Опубликовано 27 Июня 2005 Убрала собаку - все равно ничего не выводит.А в пхп.ини я не могу поменять ничего, ведь я же не "сам себе хостер".... А через htaccess попробую конечно....[1119856309:1119856369]Попробовала - php_value memory_limit 16M - ничего не изменилось Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
theIggs Опубликовано 27 Июня 2005 Жалоба Поделиться Опубликовано 27 Июня 2005 Убрала собаку - все равно ничего не выводит.Тогда уверена, что вообще в этом месте ошибка? error.log-то есть? Уж там-то точно должно быть написано, что за ошибка и в каком месте!Попробовала - php_value memory_limit 16M - ничего не изменилосьВот-вот, мы тоже на мастерхосте пробовали - ничего не получилось, видимо, доступа нет к .htaccess. Если phpinfo() после создания такого .htaccess открыть, там значение memory_limit какое стоит? Вот когда 16М станет, тогда всё в шоколаде. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Anna Опубликовано 27 Июня 2005 Автор Жалоба Поделиться Опубликовано 27 Июня 2005 странно, но в error_log (смотрю через юзер панель на мастерхосте) ничего на эту тему нет. вообще. а вам удалось каким-то образом 8М на 16М поменять?[1119859201:1119859401]у меня сейчасecho "memory: ".memory_get_usage(); echo $validfile_id = imagecreatetruecolor($valid_width, $valid_height); echo "created "; дык вот он мне первую строчку выводит только. error_reporting(E_ALL) стоит выше. где он еще может срубать как не тут?[1119859201:1119859618]во! появилась ошибка в еррор_лог:[Mon Jun 27 12:05:15 2005] [error] PHP Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 450 bytes) in /.../ips_kernel/class_image.php on line 503[1119859201:1119859702]503 строка - это как раз echo $validfile_id = imagecreatetruecolor($valid_width, $valid_height);[1119859201:1119948462]Вопрос решился установкой на хостинге своего собственного PHP как CGI и изменением соответствующей настройки в PHP.INI Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.