Intereting Posts

PHP preg_match_all 100 МБ файл

Я прочитал, что «preg_match_all» не предназначен для синтаксического анализа больших файлов, но мне нужно это сделать. Я увеличил:

pcre.backtrack_limit=1000000000 pcre.recursion_limit=1000000000 

мой PHP memory_limit установлен в 5000M, и скрипт заканчивается без каких-либо ошибок или исключений в течение 0,2 секунд …

Единственный solutinon разбил файл 100M на 100 небольших 1M файлов?

Спасибо за помощь

Solutions Collecting From Web of "PHP preg_match_all 100 МБ файл"

Основываясь на вашем коде, я предлагаю вам сделать это следующим образом:

  1. Установить переменную $data в пустую строку

  2. Установить переменную $work для пустых строк; прочитайте блок данных и добавьте эту строку в $data

  3. Используйте regex #^(.*?)(<tr>\n(?!.*<tr>\n).*)$# Чтобы разделить $data на $work и $data

  4. Найти все совпадения в $work

  5. Вернитесь к пункту № 2, пока доступны данные

  6. Найти все совпадения в $data

Подумайте об использовании инструментов командной строки, которые намного лучше подходят для обработки больших объемов данных.

grep, sed, awk или их комбинацию.