Как получить поисковый запрос реферера из Google?

Совсем недавно, как два дня назад, следующий код работал, чтобы получить поисковый запрос из 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 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), и выяснилось, что способ обработки запросов запросов referrer Google изменился. Ранее включенный запрос $

"q=term1%20term2%20term3%20...

Теперь, однако, я получаю следующий вывод, когда запрос $ echo'ed:

 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.

См. Веб-ссылку

http://googlewebmastercentral.blogspot.ru/2012/03/upcoming-changes-in-googles-http.html

Это означает, что пользователь должен войти в аккаунт Google. Вы можете попробовать сами: если ваш поисковый URL-адрес начинается с https: // это означает, что Google скроет некоторые параметры царапин во имя конфиденциальности.

На этой неделе я тоже столкнулся с тем же вопросом. Я не уверен, что это все еще имеет отношение к вам, но я обнаружил, что Google инициировал поиск SSL (Secure Sockets Layer) для пользователей, которые были подписаны примерно год назад, и похоже, что теперь поиск SSL может применяться все поисковые запросы Google. Когда я протестировал это, я не был подписан в Google и использовал Firefox и все еще получил зашифрованный ссылочный запрос.

Эта статья содержит некоторые полезные сведения и некоторые идеи для работы без конкретных данных поискового запроса: http://searchenginewatch.com/article/2227114/5-Tips-for-Handling-Not-Provided-Data

  // 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); }