【发布时间】:2012-02-21 08:37:11
【问题描述】:
我想多次使用用户在 google 中使用的搜索短语来访问我的网站。
有没有任何程序化的方式来做到这一点?
谢谢, 奥兰
【问题讨论】:
-
你尝试过什么吗?
-
对不起。还没有。会尽快回复。
标签: php javascript html
我想多次使用用户在 google 中使用的搜索短语来访问我的网站。
有没有任何程序化的方式来做到这一点?
谢谢, 奥兰
【问题讨论】:
标签: php javascript html
您可以使用下面的代码:
$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的信息
【讨论】:
您可以从请求中的"HTTP_referer" 获取它。($_SERVER['HTTP_REFERER'];)
【讨论】:
我认为它应该在引荐来源网址中,因为他们通过 q 参数将搜索字符串附加到 url。
【讨论】:
使用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){