Извлечь адрес RSS ленты

Функция на языке PHP извлекает адрес RSS ленты из HTML кода страницы. Ссылки на RSS ленту бывают разных видов, поэтому обычным поиском на вхождение или единственным регулярным выражением нельзя корректно обработать все сайты, которые встречаются при парсинге. Функция работает на регулярных выражениях, это в основном эффективнее чем использовать библиотеки для разбора XML. К тому же HTML код сайтов не всегда правильный, а эта функция благодаря своей простоте определяет URL RSS ленты практически всегда.

Функция проверена на парсинге главных страниц многих тысяч сайтов.

 

/*
Извлечь адрес RSS ленты
Автор: http://trickywebs.org.ua/
*/
function grab_feed_url( $html ) {

	preg_match_all('!<link([^>]*)>!i', $html, $link);

	foreach ($link[1] as $attributes) {
		if (preg_match('!type=["\']application/rss\\+xml["\']!i', $attributes)) {
			if (preg_match('!href=["\']([^"\']+)["\']!i', $attributes, $href)) {
				return $href[1];
			}
		}
	}
 
	return null;

}