Php 如何从google获取referer搜索查询?
就在两天前,以下代码用于从google获取搜索查询:Php 如何从google获取referer搜索查询?,php,search-engine,google-search,Php,Search Engine,Google Search,就在两天前,以下代码用于从google获取搜索查询: $refer = parse_url($_SERVER['HTTP_REFERER']); $host = parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST); $query = parse_url($_SERVER['HTTP_REFERER'], PHP_URL_QUERY); if(strstr($host,'www.google.com')) { //do google stu
$refer = parse_url($_SERVER['HTTP_REFERER']);
$host = parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST);
$query = parse_url($_SERVER['HTTP_REFERER'], PHP_URL_QUERY);
if(strstr($host,'www.google.com'))
{
//do google stuff
$qstart = strpos($query, 'q=') +2;
$qend = strpos($query, '&', $qstart);
$qlength = $qend - $qstart;
$querystring = substr($query, $qstart, $qlength);
$querystring = str_replace('q=','',$querystring);
$keywords = explode('%20',$querystring);
$keywords = implode(' ', $keywords);
return $keywords;
}
然而,现在情况并非如此。我使用echo($query)对其进行了测试,结果显示谷歌处理推荐人查询请求的方式已经改变。以前包含$query
“q=term1%20term2%20term3%20…
但是,现在,在回显$query时,我得到了以下输出:
sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0CCsQFjAB&url=http%3A%2F%2Fexample.com%2F&ei=vDA-UNnxHuOjyAHlloGYCA&usg=AFQjCNEvzNXHULR0OvoPMPSWxIlB9-fmpg&sig2=iPinsBaCFuhCLGFf0JHAsQ
有办法解决这个问题吗?我本周也遇到了同样的问题。我不确定这是否仍然与您有关,但我发现是Google启动了SSL(安全套接字层)搜索大约一年前登录的用户,看起来SSL搜索现在可以应用于所有谷歌搜索查询。当我测试这一点时,我没有登录谷歌,而是使用Firefox,仍然得到加密的查询
这篇文章有一些有用的背景知识和一些在没有特定搜索词数据的情况下工作的想法:很抱歉,这是全球谷歌政治的变化 请参阅web链接 这意味着如果用户登录谷歌帐户。
您可以自己尝试:如果您的谷歌搜索url以https://开头,这意味着出于隐私考虑,谷歌将隐藏一些临时参数。谷歌为所有搜索启动了SSL,这些信息只能通过谷歌分析获得。
// take the referer
$thereferer = strtolower($_SERVER['HTTP_REFERER']);
// see if it comes from google
if (strpos($thereferer,"google")) {
// delete all before q=
$a = substr($thereferer, strpos($thereferer,"q="));
// delete q=
$a = substr($a,2);
// delete all FROM the next & onwards
if (strpos($a,"&")) {
$a = substr($a, 0,strpos($a,"&"));
}
// we have the results.
$mygooglekeyword = urldecode($a);
}
但是,对于付费活动搜索引擎,如Google、Bing和Yahoo,使用查询字符串参数,如和,您可以通过参数utm\u term访问搜索查询。我遇到了相同的问题。您找到了解决方案吗?