【问题标题】:Extract site link from google URL [duplicate]从谷歌 URL 中提取网站链接 [重复]
【发布时间】:2015-01-23 13:28:10
【问题描述】:

我想从 Google 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&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/

但 googleURL 中可能有两个“about”或“&q=" 可能会导致问题。

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

【问题讨论】:

  • 我怀疑你会有 2 个&q=。第二个将覆盖第一个。为什么不使用像 preg_match("/https:\/\/plus.google.com\/[0-9]+\//", $googleURL, $match); 这样的正则表达式
  • 如果我有另一个“关于”而不是像google.ca/local_url?dq=about+这样的“食物”会怎样?
  • 解析 url,然后是查询字符串,如果需要,再解析查询字符串中的 url:php.net/manual/en/function.parse-url.php

标签: php string url


【解决方案1】:

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

但是,如果您想从字符串 url 中获取参数,这个问题很好地涵盖了它:

How to get parameters from a URL string?

$parts = parse_url($googleUrl);
parse_str($parts['query'], $query);
echo $query['q'];

【讨论】:

  • 我同意你的看法@johnride,但我喜欢你的回答,这更优雅。谢谢
猜你喜欢
  • 1970-01-01
  • 2016-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-12
  • 1970-01-01
相关资源
最近更新 更多