Узнал, что можно сохранить результат проверки на соответствие регулярному выражению в ассоциативный массив. Делается это, примерно, следующим образом.

<?

$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:



Leave a Comment