PHP не хватает памяти, но почему? - PullRequest
4 голосов
/ 10 марта 2012

У меня есть следующая строка кода в начале функции:

$src_img=imagecreatefromjpeg($name);

$name содержит полный путь сервера к не публично доступной папке с изображением, которая составляет 4,4 МБ JPG.

Обычно, когда возникает эта проблема, PHP требуется больше памяти, чем выделено, чтобы открыть сжатый образ, и выполнение команды ini_set для увеличения члена до 128 МБ решает проблему. Однако в этом случае это не так. Я попытался повысить до 256, 512 и 1024 МБ, и все равно возвращается с ошибкой:

Неустранимая ошибка: допустимый объем памяти 262144 байта исчерпан (попытка выделить 17152 байта) в /imgprocess.php в строке 83.

Я даже пытался использовать (контрабанду!) -1, чтобы разрешить неограниченную память, просто чтобы посмотреть, не заставило ли это что-то взлететь до небес, но все равно не пошло.

Я пробовал другой файл изображения, если это был плохой JPG, но все равно не ходил.

Как это можно решить?

РЕДАКТИРОВАТЬ: я должен добавить, что PHP не в безопасном режиме

1 Ответ

2 голосов
/ 31 марта 2012

Это должно решить вашу проблему:

ini_set('memory_limit', '256m');

Пожалуйста, прочитайте faq.using.shorthandbytes

Использование "МБ" является неправильной сокращенной записьюini_get () чаще всего не возвращает нормализованные значения, возвращает то, что было установлено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...