preg_match из файла больше 100Кб

Роберт

Аналитик
preg_match из файла больше 100Кб

Ни кто не сталкивался с такой проблемой
Apache2.2
PHP 5.2.6
Пытаюсь вытащить таблицу из файла размером 140Кб
preg_match('#<table>.+?</table>#is',$Fail,$Rezultat);
ничего не находит
Если делаю запрос жадным (убираю вопросительный знак: <table>.+</table>) - всё находит
Если уменьшаю файл до 70Кб - всё находит (файл не содержит символов меньше #32)

Переношу файл на машину с Apache2 и PHP 5.1.6 - всё работает без проблем
Обновил до последней на сегодняшний день версии PHP 5.2.9-1 - не идёт... :(
 

SiMM

Новичок
А Apache-то тут каким боком?
PHP:
$content = str_repeat(' ',100*1024).'<table>test</table>'.str_repeat(' ',100*1024);
preg_match('#<table>.+?</table>#is',$content,$data);
print_r($data);
Что выдаёт?
 

Роберт

Аналитик
В этом случае находит.
А вот при:
PHP:
$content = '<table>'.str_repeat('.',100*1024).'</table>';
результат:
Array ( )
 

vovanium

Новичок
недавно уже задавали вопрос...
в php.ini есть настройки
pcre.backtrack_limit и pcre.recursion_limit, там по умолчанию лимит 100 тысяч символов, как раз в 5.2 добавили
 

Роберт

Аналитик
Ух ты... А когда ввели такое? Ушёл перечитывать мануал по настройкам...

-~{}~ 24.03.09 12:56:

Да , точно: Available since PHP 5.2.0.
 
Сверху