Я пытаюсь разобрать некоторые веб-страницы с preg_match_all (), и некоторые из них довольно большие, как несколько MB в размере. И одно из регулярных выражений соответствует некоторым текстовым строкам, которые настолько велики, что они, похоже, не могут их сопоставить и приобрести. Он просто возвращает пустую строку.
Одна из строк – 1.32 МБ или 1 393 557 байт, когда я вручную выбрал ее и сохранил ее как .txt-файл.
Когда строка намного короче, чем всего несколько десятков тысяч байтов, это регулярное выражение успешно совпадает и приобретает его.
Итак, мой вопрос в том, что, как мне кажется, существует предел / максимальная длина строки preg_match_all (), которая может совпадать, что это такое и как я могу установить его больше?
Установите ini_set('pcre.backtrack_limit', '1048576');
к тому, что вы хотите в своем скрипте или в файле php.ini для глобального использования. (пример 1 мб)
Кредит: http://www.karlrixon.co.uk/writing/php-regular-expression-fails-silently-on-long-strings/