Я еще не использовал $_SERVER['HTTP_REFERER']
и я не знаю, как я могу это использовать, чтобы найти, что этот пользователь пришел на мой сайт, нажав ссылку в результатах поиска Google. Пользователь может поступать с google.com, google.co.uk и т. Д ….
Помощь очень ценится.
$url = $_SERVER['HTTP_REFERER']; $query = parse_url ($url, PHP_URL_QUERY); $host = parse_url ($url, PHP_URL_HOST); if (strstr ($query, 'q=') && strstr ($host, 'google.')) { // user came from google else { // user didnt come from google }
Это мое решение, которое не дает никаких предупреждений, когда реферер не существует из запроса страницы.
public function doesUserCameFromCrawler() { $crawlerList=array("google.","yandex.","bing."); if (isset($_SERVER['HTTP_REFERER'])) { $referringPage = parse_url( $_SERVER['HTTP_REFERER'] ); if ( isset( $referringPage['host'] )) { $referringHost = $referringPage['host']; foreach ($crawlerList as $crawler) { if (strpos(strtolower($referringHost),$crawler) !== FALSE) { return TRUE; } } } } return FALSE; }