PHP, включая большие файлы - проблемы с памятью - PullRequest
0 голосов
/ 03 января 2012

У меня проблемы с включением действительно больших файлов, поэтому я использовал ini_set('memory_limit', '-1'); но по-прежнему не может включать файл размером чуть более 1 ГБ. Что мне делать?

Ответы [ 2 ]

3 голосов
/ 03 января 2012

Вам придется пересмотреть свою архитектуру;Функция PHP include не предназначена для обработки таких больших файлов;он был разработан, чтобы включать и оценивать файл кода PHP.Не зная, какие данные в действительности содержит файл, сложно сказать больше;но кажется маловероятным, что этот файл на самом деле содержит только код PHP;Похоже, вы пытаетесь прочитать много информации, которая закодирована в PHP-подобном формате.

Например, вы должны попытаться прочитать файл кусками или строками вместо использованиявключают в себя.

0 голосов
/ 03 января 2012

Единственная возможная причина, по которой вы пытаетесь загрузить такой файл, это, вероятно, импортировать его в базу данных. Каждая база данных имеет загрузчик файлов, предназначенный для этой цели. Mysql имеет LOAD INFILE специально для решения этой проблемы. Я бы рекомендовал сначала получить данные в вашей базе данных, а затем использовать PHP или MySQL для преобразования данных в соответствии с вашими потребностями. Использование PHP для анализа файла размером 1 ГБ, вероятно, не лучшее использование PHP или ваших ресурсов.

...