从google API中删除部分网址

时间:2014-05-03 16:22:07

标签: php regex

Google API

提供此类链接

http://news.google.com/news/url?sa=t&fd=R&ct2=us&usg=AFQjCNFhnbiaA4JmbJdwKBzJOxs2B49LfQ&clid=c3a7d30bb8a4878e06b80cf16b898331&ei=eBZlU8CyBIWc1QajIA &安培; URL = http://opinion.inquirer.net/74164/aseans-elusive-integration

如何才能获得“& url =”之后的链接?

答案

$link = '...a4878e06b80cf16b898331&ei=eBZlU8CyBIWc1QajIA*&url=http://opinion.inquirer.net/74164/aseans-elusive-integration';
$parsed = parse_url($link);
echo '<pre>'.print_r($parsed).'</pre>';

这应该显示字符串最后一个位置的&amp; url =参数的url。 希望它有所帮助

2 个答案:

答案 0 :(得分:0)

一种方法是使用parse_str()parse_url()函数。您可以使用它来分隔字符串信息以查找特定参数值。

parse_str(parse_url($urlString, PHP_URL_QUERY), $array)

所有参数都将存储在$ array变量中。

信用:https://stackoverflow.com/a/3136450/2748747

答案 1 :(得分:0)

你去,享受。

<?php
$str = 'http://news.google.com/news/url?sa=t&fd=R&ct2=us&usg=AFQjCNFhnbiaA4JmbJdwKBzJOxs2B49LfQ&clid=c3a7d30bb8a4878e06b80cf16b898331&ei=eBZlU8CyBIWc1QajIA&url=http://opinion.inquirer.net/74164/aseans-elusive-integration';

$str = preg_split('/&/', $str);

$final = array();

for($i = 0; $i < count($str); $i++ ){
    $a = preg_split('/=/', $str[$i]);
    if(is_array($a)) {
        $final[$a[0]] = $a[1];
    }
}


var_dump($final);

echo $final['url'];