【问题标题】:Can I Get The Search Phrase From Google?我可以从 Google 获取搜索短语吗?
【发布时间】:2012-02-21 08:37:11
【问题描述】:

我想多次使用用户在 google 中使用的搜索短语来访问我的网站。

有没有任何程序化的方式来做到这一点?

谢谢, 奥兰

【问题讨论】:

标签: php javascript html


【解决方案1】:

您可以使用下面的代码:

$referrer = $_SERVER['HTTP_REFERER']; 
if (!empty($referrer)) { 
    $parts_url = parse_url($referrer); 
    $query = isset($parts_url['query']) ? $parts_url['query'] : ''); 
        if($query) { 
            parse_str($query, $parts_query);             

            $ref_keywords = isset($parts_query['q']) ? $parts_query['q'] : (isset($parts_query['query']) ? $parts_query['query'] : '' )); 
        }
}

但是,请注意,Google 现在已停止在其引荐来源网址中为所有登录用户发送查询字符串。因此,您的功能仅适用于退出 Google 的用户。这里有更多关于这个http://googleblog.blogspot.com/2011/10/making-search-more-secure.html的信息

【讨论】:

  • Big +1 提到隐藏登录用户的查询。
【解决方案2】:

您可以从请求中的"HTTP_referer" 获取它。($_SERVER['HTTP_REFERER'];)

另见another question regarding the topic

【讨论】:

    【解决方案3】:

    我认为它应该在引荐来源网址中,因为他们通过 q 参数将搜索字符串附加到 url。

    【讨论】:

      【解决方案4】:

      使用HTTP_REFERER 服务器变量。

      $referer= $_SERVER['HTTP_REFERER'];
      //find the search query from google that brought them here
      $qref= strpos($referer,’google’);
      if($qref!=”){
      $qstart = strpos($referer,’q=’);
      $qend = strpos($referer,’&’,$qstart);
      $qtext= substr($referer,$qstart+2,$qend-$qstart-2);
      $qtext= str_replace(‘+’,’ ‘,$qtext);
      }
      echo $qtext
      

      取自here

      【讨论】:

      • 需要注意的是strpos如果没有找到字符串则返回boolean false,如果找到则返回整数。所以你应该使用if($qref !== false){
      • 既然 Google 转移到了 https 和 https 应该不会传递 HTTP_REFERER 数据,这是否还能工作?
      猜你喜欢
      • 1970-01-01
      • 2013-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-30
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      相关资源
      最近更新 更多