Fonction SEO, d’où vient mon visiteur
Posté par admin dans Fonctions Utiles En Php le 4 mars 2010
D’ou vient le visiteur ? Une question a laquelle beaucoup de Webmaster aimerait répondre.
Voici une petite fonction sympas pour retrouver facilement le mot clé, le moteur de recherche et la page de provenance d’un visiteur sur un site:
function analyse($ref)
{
$refe = parse_url($ref);
parse_str($refe['query'], $query);
$host = $refe['host'];
switch ($host){
//GOOGLE
case (strpos($host, '.google.') !== false):
$moteur = "Google";
$mot_cle = $query['q'];
$page = $query['start'];
if (!$page){
$page = 1;
} else {
$page = ($page / 10) + 1;
}
break;
//Yahoo
case (strpos($host, '.yahoo.') !== false):
$moteur = "Yahoo";
$mot_cle = $query['p'];
$page = $query['b'];
if (!$page){
$page = 1;
} else {
$page = (($page - 1) / 10) + 1;
}
break;
//Bing
case (strpos($host, '.bing.') !== false):
$moteur = "Bing";
$mot_cle = $query['q'];
$page = $query['first'];
if (!$page){
$page = 1;
} else {
$page = (($page - 1) / 10) + 1;
}
break;
//ALTAVISTA
case (strpos($host, '.altavista.') !== false):
$moteur = "Altavista";
$mot_cle = $query['q'];
$page = $query['stq'];
if (!$page){
$page = 1;
} else {
$page = ($page / 10) + 1;
}
break;
//LYCOS
case (strpos($host, '.lycos.') !== false):
$moteur = "Lycos";
$mot_cle = $query['query'];
$page = $query['page2'];
if (!$page){
/**
* particularité de lycos qui affiche un page2=0
* au lieu de ne rien afficher
*
*/
$page = "1";
} else {
$page = $page + 1;
}
break;
//ALLTHEWEB
case (strpos($host, '.alltheweb.') !== false):
$moteur = "All The Web";
$mot_cle = $query['q'];
$page = $query['o'];
if (!$page){
$page = 1;
} else {
$page = ($page / 10) + 1;
}
break;
}
return array(
'moteur' => stripslashes($moteur) ,
'mot' => stripslashes($mot_cle) ,
'page' => stripslashes($page)
);
}
Utilisation :
$result = analyse($_SERVER['HTTP_REFERER']); echo $result['moteur'] . '<br />'; echo $result['mot'] . '<br />'; echo $result['page'] . '<br />';
Où sont les Bots ?
Posté par admin dans Fonctions Sympas, Fonctions Utiles En Php le 25 février 2010
Une petite fonction sympa pour surveiller les Bots ( save en BDD ou cloaking )
L’interêt de cette fonction et de pouvoir traiter des tableaux multiples en redéfinissant des plages d’ip éventuelles des Robots ou tout autre recherche que vous souhaiteriez traquer
/**
* Is_bot
* traque la présence d'un bot par plage d'ip
*
* @param string $ip
* @param array $array_bots
* @return string|false
*/
function is_bot ($ip,$array_bots) {
$ip = strval($ip);
$reponse = false;
foreach($array_bots as $bot=>$val) {
foreach($array_bots[$bot] as $ip_bot) {
$reponse = strpos($ip,$ip_bot);
if ($reponse !== FALSE) return $bot;
}
}
return $reponse;
}
Utilisation:
$bots = array(
'google' => array('216.239.46','64.68.8','66.249.','64.233.173'),
'yahoo' => array('66.196.','68.142.','202.165.','66.142.')
);
$test = is_bot('216.239.46.654',$bots); //renverra TRUE car 216.239.46 est présent dans l'ip
if($test != FALSE) {
//action affichage bot ou cloaking
$bot = $test;
echo "bot présent<br/>";
echo $bot;
} else {
echo "pas de bot";
}
Le code vous retourne donc un true ou false avec possibilité de reprendre le nom du bot.
Les Commentaires