[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 e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *