function compteur_visites(){Pour un script plus évolué qui enregistre d'autres infos sur vos visiteurs, comme les pages visitées, ceux qui sont sur mobile, je propose un autre script qui est disponible ici : C2stats : enregistre le trafic de votre site
//vous pouvez modifier le chemin du fichier
$chemin_stats = "statistiques_visites.txt";
//stats par défaut
$aujourdhui = 1;
//si le fichier de stats n'est paos encore créé
if(!file_exists($chemin_stats)){
//création - première visite
$tableau_stats = [];
}else{
//ouvre le fichier et récupère les lignes dans un tableau
$tableau_stats = file($chemin_stats, FILE_SKIP_EMPTY_LINES | FILE_IGNORE_NEW_LINES);
}
if(empty($tableau_stats)){
file_put_contents($chemin_stats, date("d-m-Y") . ":1");
$tableau_stats = [];
}else{
/* Le contenu de ce fichier est de type suivant : "[date]:[nombre d'affichage pour cette journée]"
Exemples :
25-10-2023:2548
26-10-2023:4528
27-10-2023:3584
28-10-2023:1253
*/
// Prends le dernier élément du tableau et vérifie si c'est la date d'aujourd'hui
$derniere_ligne = end($tableau_stats);
// explode() va nous permettre de récupérer la date et le nombre d'affichage de cette journée
$stat = explode(":", $derniere_ligne);
//si la date de la dernière ligne est aujourd'hui, on rajoute 1 affichage à cette ligne
if($stat[0] == date("d-m-Y")){
$aujourdhui = ((int) $stat[1]) + 1;
//enlève le dernier element du tableau
array_pop($tableau_stats);
//pour la remplacer par la nouvelle valeur
array_push($tableau_stats, date("d-m-Y") . ':' . $aujourdhui);
file_put_contents($chemin_stats, implode("\n", $tableau_stats));
//sinon on ajoute une nouvelle ligne pour aujourd'hui
}else{
//pour la remplacer par la nouvelle valeur
array_push($tableau_stats, date("d-m-Y") . ':1');
file_put_contents($chemin_stats, implode("\n", $tableau_stats));
}
}
//statistiques totales depuis le lancement du site
$total = empty($tableau_stats) ? 1 : 0;
foreach($tableau_stats as $stat){
$stat = explode(':', $stat);
$total += $stat[1];
}
return [
'aujourdhui' => $aujourdhui,
'total' => $total,
'depuis' => count($tableau_stats),
];
}
//UTILISATION
//on compte la visite et on récupère les stats dans $compteur_visites
$compteur_visites = compteur_visites();
echo "<p>Depuis {$compteur_visites['aujourdhui']} jour(s), le site comptabilise {$compteur_visites['total']} visite(s) au total, et {$compteur_visites['aujourdhui']} aujourd'hui.</p>";
J'espère que ce script gratuit vous est utile.Pour soutenir mon travail, un simple don ou mettre une note est grandement apprécié.
Vous cherchez à pousser encore plus loin vos idées ou à les concrétiser avec un site internet sur mesure ? Je suis là pour vous aider ! Mon expérience en développement web est à votre disposition.
Que ce soit la création de votre site web pro ou l'apport de fonctionnalités avancées à votre projet, contactez-moi pour en discuter et avoir un devis gratuit personnalisé.
Mon objectif est de vous offrir des solutions sur mesure qui répondent à vos besoins, et votre vision associée à mon expertise donnera vie à votre projet web parfait. Contactez-moi aujourd'hui, je réponds en général en moins d'une heure :
Demander un devisgaeil le 24 Janvier 2017 à 18:59
Bonjour et merci pour ce code qui fonctionne parfaitement. Y-a t-il cependant un moyen de ne pas prendre en compte ses propres visites ? car chaque fois qu'on va voir la page, on rajoute 1..
merci
Gérard
admin le 24 Janvier 2017 à 20:47
Bonjour, merci, oui ya la possibilité si votre adresse IP est fixe, il vous suffira de faire une condition en haut dans la fonction, du style:
if($_SERVER['REMOTE_ADDR']=="ici votre adresse ip"){
return false; //le compteur ne sera pas exécuté
}
gaeil le 25 Janvier 2017 à 10:22
Bonjour et merci pour la réponse. Non, l'adresse IP n'est pas fixe comme une grande majorité de "petits" sites je présume. la lecture d'un cookie sur l'ordinateur de consultation peut-être ? Si le cookie existe, on sort de la boucle compteur. Mais je ne sais pas faire...
Gérard
admin le 25 Janvier 2017 à 12:18
Je parle là de l'adresse IP de votre connexion internet, non de votre site (L'IP du site ne change pas pour les petits sites, ni même pour les grands il me semble).
Avec des cookies, alors la condition serait du même type mais avec une vérification de cookies sur l'ordinateur du visiteur.
Pour la création d'un cookie ainsi que sa vérification, je vous invite à voir la doc:
https://php.net/manual/fr/function.setcookie.php
PS: laissez moi savoir si vous parliez bien de l'IP de votre site ou de l''IP de votre connexion internet ? au quel cas si l'IP de votre internet, je vous passerai un code pour les cookies
juvlain le 20 Octobre 2017 à 19:18
bjr.. je voulais savoir comment faire un compteur de visites pour un site d'annonces.. la ou on a besoin de compter les visites pour chaque annonce ?
merci
admin le 21 Octobre 2017 à 08:34
Bonjour,
là il vous faudra vous diriger vers un script PHP qui comptabilise chaque visite dans une base de données, il existe plein d'exemples sur internet.
papa le 01 Février 2018 à 15:05
Bonjour , comment afficher le nombre de visiteurs de la veille ? : hier il y a eu X visiteurs
merci :)
admin le 01 Février 2018 à 15:23
Bonjour,
une solution simple est de récupérer l'avant dernier jour dans le fichier stats.txt
papa le 01 Février 2018 à 16:19
Bonjour , de nouveau moi :) , pouvez vous m'indiquer la formule pour récupérer l'avant dernier jour ?-
Je ne suis pas trop calé sur les codes , en vous remerciant.
admin le 01 Février 2018 à 17:30
pour récupérer l'avant dernière ligne, je vous suggère d'utiliser la fonction count() qui comptera le nombre de ligne dans le fichier stats.txt, puis de faire count-1 si bien sur vous avez plus d'un enregistrement dans le fichier stats.txt, sinon vous aurez une erreur.
Franck le 30 Septembre 2019 à 10:45
Bonjour, J'ai un auto refresh toutes les 30 secondes sur la page dans laquelle j'affiche le compteur. Toutes les 30 secondes le compteur s'incrémente de +1. Y a t'il une solution ? Merci
admin le 30 Septembre 2019 à 11:48
Bonjour, enregistrez l'IP.
Floxo81 le 26 Août 2022 à 15:30
bonjour
dans quel fichier on rajoute ce code j'ai un site word press si je le rajoute dans le headers ca marchera??
merci
yves le 20 Avril 2025 à 00:08
Bonjour, A la recherche d'un script de compteur de visite (simple) j'ai trouver votre script, mais j'ai quelques problèmes pour sa mise en place 1) le nom et le début de la page PHP; 2) le nom et début de la page TXT - 3) code à de la page page en HTLM; En gros, le pépé que je suis , ne capte pas tout. eh oui avec avec l'äge....MERCI
admin le 20 Avril 2025 à 00:40
Bonjour, son utilisation est simple, mettez ce code dans votre page PHP :
//UTILISATION
//on compte la visite et on récupère les stats dans $compteur_visites
$compteur_visites = compteur_visites();
echo "<p>Depuis {$compteur_visites['aujourdhui']} jour(s), le site comptabilise {$compteur_visites['total']} visite(s) au total, et {$compteur_visites['aujourdhui']} aujourd'hui.</p>";
Le .txt sera créé automatiquement.
Le plus simple pour commencer est de prendre tout le code de ce tuto, de le mettre en une page .php (par exemple mon-compteur.php) et d'inclure cette page où vous souhaitez avoir des visites comptées.
include 'mon-compteur.php';
Chldc le 19 Juin 2025 à 12:24
Bonjour, j'ai essayé ce code chez free.fr mais leur version PHP est trop ancienne le code corrigé serait ainsi:
function compteur_visites(){
$chemin_stats = "statistiques_visites.txt";
$aujourdhui = 1;
if(!file_exists($chemin_stats)){
$tableau_stats = array(); // Changed from []
} else {
$tableau_stats = file($chemin_stats, FILE_SKIP_EMPTY_LINES | FILE_IGNORE_NEW_LINES);
}
if(empty($tableau_stats)){
// Replaced file_put_contents
$fp = fopen($chemin_stats, 'w');
if ($fp) {
fwrite($fp, date("d-m-Y") . ":1");
fclose($fp);
}
$tableau_stats = array(); // Changed from []
} else {
$derniere_ligne = end($tableau_stats);
$stat = explode(":", $derniere_ligne);
if($stat[0] == date("d-m-Y")){ // Ensure you access the date part correctly
$aujourdhui = ((int) $stat[1]) + 1; // Access the count part
array_pop($tableau_stats);
array_push($tableau_stats, date("d-m-Y") . ':' . $aujourdhui);
// Replaced file_put_contents
$fp = fopen($chemin_stats, 'w');
if ($fp) {
fwrite($fp, implode("\n", $tableau_stats));
fclose($fp);
}
} else {
array_push($tableau_stats, date("d-m-Y") . ':1');
// Replaced file_put_contents
$fp = fopen($chemin_stats, 'w');
if ($fp) {
fwrite($fp, implode("\n", $tableau_stats));
fclose($fp);
}
}
}
// ... (rest of your function, including the return array)
return array( // Changed from []
'aujourdhui' => $aujourdhui,
'total' => $total,
'depuis' => count($tableau_stats)
);
}
admin le 19 Juin 2025 à 12:36
Merci pour ce code compatible PHP 5.6 à mon avis, en effet les tableaux doivent être déclarés avec array() et non [], entre autre.