RECHERCHER

ANNUAIRES

 
 TUTORIELS 
Afficher les 10 derniers référents en PHP
Un script pour afficher les provenances immédiates de vos visiteurs récents. De quoi utiliser les expressions rationnelles.  (8 juillet 2003)
 

Il est toujours utile de savoir d'où viennent les visiteurs de votre site, afin de découvrir les mots-clés les plus fréquemment tapés dans un moteur de recherche pour y parvenir, ou quels sont les sites qui parlent du vôtre.

Le script que nous vous proposons ici va un peu plus loin : il prend tout d'abord soin de sauver les adresses de provenance de vos visiteurs dans un fichier se trouvant sur votre serveur, mais vous permet aussi d'afficher ces adresses sur votre site. En effet, cette information supplémentaire peut se révéler utile pour vos visiteurs, que ce soit pour aller vers des sites sur le même sujet... ou par simple curiosité.

Voici le code :

<?php
$referants = "reffichier.html";

if ( isset($HTTP_REFERER)
  && ($HTTP_REFERER != "")
  && ($HTTP_REFERER != "bookmarks") )
  {
  $ref_court = preg_replace("/http:\/\//","", $HTTP_REFERER);
  $ref_court = preg_replace("/\/.*/", "", $ref_court);

  if ( ($ref_court != "monsite.com")
    && ($ref_court != "www.monsite.com")
    && ($ref_court != "bookmarks") )
    {

    $ref_long = preg_replace("/&/", "&", $HTTP_REFERER);

    $reffichier = fopen($referants,'a');
    fwrite($reffichier, "<a href=\"$ref_long\">$ref_court</a><br>\n");
    fclose($reffichier);
    }
  }

if (file_exists($referants))
  {
  $refarray = file($referants);
  $refarray = array_reverse($refarray);

  for ($i=0; $i<=10; $i++)
    {
    echo $refarray[$i];
    }
  }
?>

f

Après avoir déclaré la variable contenant le nom du fichier à utiliser pour stocker nos référents, nous testons que nous avons effectivement accès à l'adresse de la page d'origine grâce à l'existence de la variable prédéfinie $HTTP_REFERER, et le fait qu'elle ne soit pas vide, ou ne contienne pas que "bookmarks" (ce qui signifierait que l'utilisateur a utiliser ses favoris, ce qui ne nous intéresse pas...).

Ceci fait, nous retirons le contenu superflu de cette variable pour n'en garder que la substantifique moelle : le nom du site d'origine. Cela nous servira pour afficher le lien, qui renverra sur l'adresse complète. Pour retirer "http://" et les répertoires d'origine, nous faisons appel aux expressions rationnelles, et donc à la fonction preg_replace(), qui nous permet de résoudre ce problème en un tournemain.

Second test : s'il se trouve que le visiteur vient directement de notre propre site (sous ses différentes incarnations), on arrête là. Dans le cas contraire, on utilise à nouveau les expressions rationnelles pour rendre nos adresses de référents affichable en bon HTML.

On créé ensuite une session de fichier à l'aide de fopen(), puis nous écrivons à la suite de notre fichier le lien HTML qui sera affiché en définitif sur notre page avec fwrite(), et fermons enfin notre session de fichier avec fclose().

Seconde partie de notre script : l'affichage lui-même. Il est fait très simplement : après avoir testé l'existence du fichier requis, on stock son contenu sous forme de tableau au sein d'une nouvelle variable $refarray, on inverse ce tableau avec array_reverse() afin de toujours avoir le dernier référant (celui qui est à la fin du fichier) au début du tableau, puis on affiche effectivement nos 10 derniers référents à l'aide d'un simple boucle for().

Il ne reste plus qu'à appeler ce script sur toutes les pages où vous voulez le voir apparaître, au moyen de la commande include() par exemple.

Le code peut être amélioré ici et là : essayez par exemple d'empêcher le fichier de dépasser les 100 Ko...

 
[ Xavier Borderie,JDNet
 
Accueil | Haut de page
 
 

 

 
 
Nos autres sites Société | Mentions légales | Contacts | Publicité | PA Emploi | Presse | Recrutement | Tous nos sites | Données personnelles
© Benchmark Group, 69/71 avenue Pierre Grenier. 92517 Boulogne Billancourt Cedex