[PHP] [Astuce] Requête Google

Titre: Requête Google
Date: Octobre 2004
Language: PHP / MySQL
Description: Ce code permet de récupérer l’éventuelle requête Google qui a permis d’arriver à cette page

<?php
function google_search()
{
	$referer = $_SERVER['HTTP_REFERER'];
	
	// si le referer n'est pas google
	if( substr( $referer, 11, 7 ) != 'google.' )
		return false;
	
	// si on ne trouve pas q=
	if( ( $pos = strpos( $referer, 'q=' ) ) === false )
		return false;
	
	// extraction de la recherche
	$google = substr( $referer, $pos + 2 );
	
	if( ( $pos = strpos( $google, '&' ) ) !== false )
		$google = substr($google, 0, $pos);
	
	$search = array( '+',
		'%C3%A9', '%C3%A8', '%C3%AA', '%C3%AB',  // é è ê ë
		'%C3%A1', '%C3%A0', '%C3%A2', '%C3%A4',  // á à â ä
		'%C3%BA', '%C3%B9', '%C3%BC', '%C3%BB', // ú ù ü û
		'%C3%AD', '%C3%AC', '%C3%AE', '%C3%AF', // í ì î ï
		'%C3%B3', '%C3%B2', '%C3%B4', '%C3%B6', // ó ò ô ö
		'%2C', '%3A', '%3B', '%3F', '%21', // , : ; ? !
		'%2B', '%2F', '%5E', '%3D', '%25', // + / ^ = %
		'%C2%B4', '%60', '%7E', // ´ ~ ¨
		'%40', '%23', '%7C', '%26', // @ # | &
		'%22', '%27',  // " '
		'%28', '%29', '%5B', '%5D', '%7B', '%7D', // ( ) [ ] { }
		'%24', '%C2%A3', '%C2%AC', '%C2%A2' // $ £ ¬ ¢
		);
	
	$replace = array( ' ',
		'é', 'è', 'ê',  'ë',
		'á', 'à', 'â', 'ä',
		'ú', 'ù', 'ü', 'û',
		'í', 'ì', 'î', 'ï',
		'ó', 'ò', 'ô', 'ö',
		',', ':', ';', '?', '!',
		'+', '/', '^', '=',  '%',
		'´', '~', '¨',
		'@', '#', '|', '&',
		'"', '\'',
		'(', ')', '[', ']', '{', '}',
		'$', '£', '¬', '¢'
		);
	
	return str_replace( $search, $replace, $google );
}
?> 

La fonction renvoie la requête ou false (en cas d’erreur où si le visiteur ne vient pas de google).

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *