PHP, RegExp и ассоциативный массив
PHP Февраль 18th, 2010
Узнал, что можно сохранить результат проверки на соответствие регулярному выражению в ассоциативный массив. Делается это, примерно, следующим образом.
<?
$url = array('http://test1.ru/',
'https://www.test2.ru/catalog/',
'http://test3.by',
'http://test4.ru/about.php?section=feedback&issend=1',
'test5.ru/about/#top',
'test6.ru/about/about.php?section=feedback&issend=1#top' );
$pattern = '#((?<protocol>[a-z]*)://)?(?<host>[^/]+)(?<uri>[^\?\#]*)?(\?(?<query>[^\#]*))?(\#(?<anchor>.*))?#si';
foreach ($url as $u)
{
preg_match($pattern, $u, $m);
echo "<b>{$u}</b><br />";
print_r($m);
}
?>
К сожалению, много мусора остается, но сама возможность кажется очень интересной. Можно как-нибудь подправить этот недостаток?
Tags: regexp
About