1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
| <?php
/*
* Si le fichier où l'on stock,
* les données n'existe pas encore
* on le crée.
*/
$fichier = 'pages/stats/.htcompteur';
if( !file_exists($fichier) ) {
$fp = fopen($fichier, "w");
fwrite($fp, serialize(array()));
fclose($fp);
}
/*
* Définition de variables
* nécessaire au compteur :
* - deux termes constants,
* - l'ip du visiteur,
* - la date et l'heure.
*/
$argument_visites_total = 'visites';
$argument_visites_hier = 'visiteshier';
$argument_visites_aujourdhui = 'visitesaujourdhui';
$argument_pages_vue = 'pages_vue';
$ip = $_SERVER['REMOTE_ADDR'];
$time = date('YmdGis');
/*
* Récupération des données du
* compteur précédemment stockées.
*/
$lignes = file($fichier);
$donnees = unserialize($lignes[0]);
/*
* Pour chaque clés du tableau de données
* qui ne soit pas attribuée aux visite et aux requêtes
* si la valeur correspond à une date antérieur
* au même jour, on supprime l'ip du visiteur.
*/
foreach( $donnees as $cle => $valeur )
{
if( substr($valeur, 0, 8) != substr($time, 0, 8) && $cle != $argument_visites_total && $cle != $argument_page_vues )
{
$donnees[$argument_visites_hier] = $donnees[$argument_visites_aujourdhui];
$donnees[$argument_visites_aujourdhui]=0;
unset($donnees[$cle]);
}
}
/*
* On incrémente ( ajoute +1 ) la valeur
* du nombre de requêtes.
* Si l'ip n'est pas encore enregistrée,
* on incrémente la valeur du nombre de visites
* et on ajoute l'ip dans le tableau accompagné
* de la date et de l'heure de l'exécution.
*/
$donnees[$argument_pages_vue]++;
if( !$donnees[$ip] ) {
$donnees[$argument_visites_total]++;
$donnees[$argument_visites_aujourdhui]++;
$donnees[$ip] = $time;
}
/*
* On effectue un petit report de variable
* pour une utilisation ultérieur plus aisée.
*/
$nb_visiteurs = $donnees[$argument_visites_total];
$nb_hier = $donnees[$argument_visites_hier];
$nb_aujourdhui = $donnees[$argument_visites_aujourdhui];
$nb_pages_vue = $donnees[$argument_pages_vue];
/*
* On stock le tableau dans le fichier de données
* en écrasant sa valeur précédente.
*/
$fp = fopen($fichier,"w");
fwrite($fp, serialize($donnees));
fclose($fp);
?> |
Partager