// Ce fichier est codé en ANSI // --------- Code du fichier enregistrant les dates ou parties de dates // dans le fichier texte : compteur3.txt $f=fopen("compteur3.txt","a"); fwrite($f,date("m;")); fclose($f); // --------- Code du fichier analysant le fichier texte // 1.----- déclarer et remplir $contenu du contenu du fichier $fichier = "compteur3.txt"; //NB : Ce fichier *.txt doit contenir au moins une date (avant d'être traité) $f = fopen($fichier, "r"); $contenu = fread($f, filesize($fichier)); fclose($f); //echo $contenu; // Nombre total d'enregistrements $tab = explode(";", $contenu); $nb_dates = count($tab) - 1; // -1 à cause du dernier ";" echo "Nombre total d'enregistrements : $nb_dates

"; /* --- Exemple de contenu du fichier : NB : Les dates (ou parties de dates) sont enregistrées sont par ordre croissant 03;03;04;06;06; */ $p = 0; // pointeur = index de la dernière date traitée $fin = false; // indique si toutes les dates ont été traitées //for ($aaaa = 2021; $aaaa < 2022; $aaaa++) { // boucle des années $aaaa = 2021; for ($j = 1; $j < 13; $j++) { // boucle des mois $cpt_mois = 0; $mm = sprintf("%02d", $j); $m2 = sprintf("%02d", $j + 1); $mois_print = $aaaa . "-" . $mm . " : "; // pour plus de lisibilité //$mois_suivant = $aaaa . "-" . $m2; $mois_suivant = $m2; if (!$fin) { for ($i = $p; $i < $nb_dates; $i++) { // boucle des dates if ($tab[$i] < $mois_suivant) { $p = $i + 1; $cpt_mois++; if ($p == $nb_dates) { echo $mois_print . $cpt_mois . "
"; $fin = true; } } else { echo $mois_print . $cpt_mois . "
"; break; } } // fin de la boucle des dates } else { echo $mois_print . $cpt_mois . "
"; }// fin du if } // fin de la boucle des mois //} // boucle des années