PHP из памяти, но почему?

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

$src_img=imagecreatefromjpeg($name);

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

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

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

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

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

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

EDIT: я должен добавить, что PHP не находится в безопасном режиме

1 ответ

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

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

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

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

licensed under cc by-sa 3.0 with attribution.