Php 从google URL提取站点链接

Php 从google URL提取站点链接,php,string,url,Php,String,Url,我想从谷歌网址中提取网站链接,我需要一种有效的方法来做到这一点, 我提取了这个,但我不喜欢这样 $googleURL = "http://www.google.ca/local_url?dq=food+Toronto,+ON&q=https://plus.google.com/110334461338830338847/about%3Fgl%3DCA%26hl%3Den-CA&ved=0CHAQlQU&sa=X&ei=HzrCVNX-JqSzigb-94D4CQ&

我想从谷歌网址中提取网站链接,我需要一种有效的方法来做到这一点, 我提取了这个,但我不喜欢这样

$googleURL = "http://www.google.ca/local_url?dq=food+Toronto,+ON&q=https://plus.google.com/110334461338830338847/about%3Fgl%3DCA%26hl%3Den-CA&ved=0CHAQlQU&sa=X&ei=HzrCVNX-JqSzigb-94D4CQ&s=ANYYN7nQx_FiR1PuowDmXBi1oyfkI2MImg";
我想要这个

https://plus.google.com/110334461338830338847/
我是这样做的

$first = current(explode("about", $googleURL)); // returns http://www.google.ca/local_url?dq=food+Toronto,+ON&q=https://plus.google.com/110334461338830338847/
然后呢,

$myLink = explode("&q=", $first);
echo $myLink[1]; // return my need => https://plus.google.com/110334461338830338847/
但谷歌URL中可能有两个“about”或“&q=”会引起问题


我知道,这个googleURL将被重定向到我的需要,但我需要那个特定的链接来满足我的需要。

我想解析它并不安全,因为谷歌可以随时更改它的实现

但是,如果您想从字符串url获取参数,那么这个问题很好地解决了这个问题:


我怀疑你会有2个
&q=
。第二个将覆盖第一个。为什么不使用正则表达式,比如
preg\u match(“/https:\/\/plus.google.com\/[0-9]+\/”,$googleURL,$match)如果我有另一个“关于”而不是“食物”,比如解析url,然后是查询字符串,如果需要的话再解析查询字符串中的url:我同意你@johnride,但我喜欢你的答案,这更优雅。谢谢
$parts = parse_url($googleUrl);
parse_str($parts['query'], $query);
echo $query['q'];