Я пытаюсь заменить устаревшие функции в исходном коде PHP новыми рекомендованными. Но у меня возникла большая проблема с заменой функции eregi на функцию preg_match с «i» в шаблоне регулярного выражения, как это предлагается в руководстве по php. Вот пример кода:
<?php
$strXml=<<<XMLSTRING
ALIPC231232
TIME
Jan 21 10:43:58 UTC 2011
ORIGINAL REQUEST:
TIME PLEASE
XMLSTRING;
eregi("(TIME)(.*)(ORIGINAL REQUEST:)" , $strXml, $matches);
echo "begin_ck_eregi_match1:".$matches[1].":end_ck_eregi_match1";
echo "begin_ck_eregi_match2:".$matches[2].":end_ck_eregi_match2";
preg_match("/(TIME)(.*)(ORIGINAL REQUEST:)/i" , $strXml, $match);
echo "begin_ck_preg_match_match1:".$match[1].":end_ck_preg_match_match1";
echo "begin_ck_preg_match_match2:".$match[2].":end_ck_preg_match_match2";
?>
В приведенном выше коде eregi правильно выдает совпадения, когда строка проверяется по шаблону; но когда preg_match используется для той же строки и проверяется по тому же шаблону, совпадения не возвращаются. Я не могу понять почему? Я должен что-то здесь упустить. Прошу вас помочь мне с этим.