【问题标题】:Getting Actual links from Google News RSS with PHP使用 PHP 从 Google 新闻 RSS 获取实际链接
【发布时间】:2012-02-11 00:59:21
【问题描述】:

我想用 PHP 解析 Google 新闻 RSS,以获取内容的实际链接。

Google 新闻 RSS 项目链接如下所示:

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=

我做了一点正则表达式,但这超出了我的能力范围......

谢谢各位!

【问题讨论】:

    标签: php rss


    【解决方案1】:

    Regex 不一定是这里最好的方法。

    $query = parse_url($google_url, PHP_URL_QUERY);
    parse_str($query, $parts);
    $url = $parts['url'];
    

    【讨论】:

    • 谢谢!以及如何消除 URL 的“非必要”部分(编辑问题,以便更好地解释)?
    • 其实我觉得弗朗西斯的解决方案更好:)
    • 你想要的在最后一行的$url。你不消除你不想要的,你得到你想要的而忽略其余的......
    【解决方案2】:

    来吧:

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

    【讨论】:

    • 谢谢!以及如何消除 URL 的“非必要”部分(编辑问题,以便更好地解释)?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多