Я хочу проанализировать RSS новостей Google с PHP, чтобы получить реальные ссылки на контент.
Ссылка на RSS-канал новостей Google выглядит следующим образом:
http://news.google.com/news/url?sa=t&fd=R&usg=AFQjCNGkF58EwDE7aA742GfVP9aE8azmhg&url=http://www.reuters.com/article/2012/01/15/us-obama-mlk-idUSTRE80E0PD20120115
Мне нужна только фактическая ссылка, все после & url = :
http://www.reuters.com/article/2012/01/15/us-obama-mlk-idUSTRE80E0PD20120115
И как можно было бы исключить «несущественную» часть URL-адреса, по сути нацеливаясь на все, начиная с http://news.google.com и заканчивая & url = ?
http://news.google.com/news/url?sa=t&fd=R&usg=AFQjCNGkF58EwDE7aA742GfVP9aE8azmhg&url=
Я делаю небольшое регулярное выражение, но это вне моей досягаемости ...
Спасибо, ребята!
Regex не обязательно лучший подход здесь.
$query = parse_url($google_url, PHP_URL_QUERY); parse_str($query, $parts); $url = $parts['url'];
Вот, пожалуйста,
$google_url = 'http://news.google.com/news/url?sa=t&fd=R&usg=AFQjCNGkF58EwDE7aA742GfVP9aE8azmhg&url=http://www.reuters.com/article/2012/01/15/us-obama-mlk-idUSTRE80E0PD20120115'; preg_match('/&url=([^&]+)/', $google_url, $matches); $url = $matches[1]; echo $url;