Я пытаюсь заменить устаревшие функции в моем исходном коде 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 используется над одной и той же строкой и проверяется на том же шаблоне, совпадения не возвращаются.Я не могу понять, почему?Я должен что-то упустить здесь.Пожалуйста, помогите мне с этим.