@banny_name

Out of memory php str_replace?

Проблема с выделением памяти..

Парсю несколько xml
и храню в виде строки в переменной,
потом делаю слияние
str_replace....

и вот такая ошибочка
Out of memory (allocated 1237843968) (tried to allocate 146957581 bytes)


Есть ли вариант убрать без вмешательств в php_ini и выделять больше памяти?
  • Вопрос задан
  • 314 просмотров
Решения вопроса 3
@magazovski
Поразительно много (1.4 Гб) хочет ваш скрипт.
0 Вариант - накинуть оперативки
1 Вариант
ini_set('memory_limit','2048M');
2 Вариант - сливать в файл
3 Вариант - оптимизировать:
Сначала делайте обработку/str_replace, а только потом слияние. По возможности не используйте лишних переменных для хранения этих строк. Ну если вы выложите весь код то можно, еще что-нибудь посоветовать
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Парсите вручную через свою потоковую функцию - проблем не будет на любом объеме данных.
Ответ написан
Комментировать
iiifx
@iiifx
PHP, OOP, SOLID, Yii2, Composer, PHPStorm
Пробовали заменить str_replace на preg_replace? Еще как вариант считывать построчно и обрабатывать строки по очереди.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы