// 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