Помогите конвертировать PHP eregi в preg_match - PullRequest
2 голосов
/ 21 апреля 2011

Мне интересно, может ли кто-нибудь помочь мне преобразовать фрагмент кода PHP, который сейчас устарел?

Вот одна строка, которую я пытаюсь преобразовать:

eregi("<text>(.*)TYPE[ \r\n]*(OF|or)[ \r\n]*REPORTING[ \r\n]*PERSON",$string,$outp);

Я конвертирую в следующее:

preg_match("/<text>(.*)TYPE[ \r\n]*(OF|or)[ \r\n]*REPORTING[ \r\n]*PERSON/i",$string,$outp);

Это ничего не соответствует.Оригинальная функция eregi работает хорошо.

1 Ответ

2 голосов
/ 21 апреля 2011

Вам нужен флаг /is в конце регулярного выражения.

Причина в том, что функция preg_ не соответствует переводу строки с .*, тогда как старые функции ereg делают это по умолчанию.

В противном случае ваше регулярное выражение должно работать без изменений с PCRE.

...