<?php // constantes numériques require ("constantes.php"); // fonctions d'affichage de portions de pages HTML require ("acces_page.php"); // génération du menu en colonne de gauche require ("genmenu.php"); // modèle de page html $ficpage = DIR_PAGES."/bargraphe-age1.html"; // ouvrir le fichier contenant la page à afficher $descfic = fopen ($ficpage, "r"); // si l'ouverture s'est bien passée if ($descfic) { // recopier le début de l'entête html en remplaçant noindex par index copmaj ($descfic, "noindex,", "index,"); // recopier le début du fichier html jusqu'à la zone contenu copie_jusque_chaine ($descfic, "contenu", 1); // l'ouvrir en lecture $ficcsv = DIR_CSV."/vacsi-tot-a-fra.csv"; $descscv = fopen ($ficcsv, "r"); // si l'ouverture s'est bien passée if ($descscv) { // lire la date mémorisée (format aaaa/mm/jj) $datefic = trim (fgets ($descscv, 20)); // la retourner au format jj/mm/aaaa $datefic = substr ($datefic, 8, 2)."/".substr ($datefic, 5, 2)."/".substr ($datefic, 0, 4); // recopier le début de fichier html en mettant la date dans le titre copmaj ($descfic, "XXXDATE", $datefic); // recopier le fichier html jusqu'à la liste copie_jusque_chaine ($descfic, "XXXLISTE"); // sauter les classes d'âge jusqu'à 4 ans do { // lire une ligne du fichier csv local $ligne = trim (fgets ($descscv, LG_MAX_CSV)); // récupérer l'âge maximum sans 0 à gauche du chiffre $agemax = (substr ($ligne, 0, 2) + 0); } while ($ligne && $agemax < 4); // trouver le nombre de doses mémorisées $args = explode (";", $ligne, 20); $nb_doses = count ($args) - 2; // répéter do { // âge de début de la prochaine classe d'âge $agemin = $agemax + 1; // lire une ligne du fichier csv local $ligne = trim (fgets ($descscv, LG_MAX_CSV)); // récupérer les différents champs de la ligne $args = explode (";", $ligne, 20); // extraire l'âge maximum (sans 0 sur les des dizaines) $agemax = $args [0] + 0; // générer la tranche d'âge if ($agemin < 80) $ages = "De ".$agemin." à ".$agemax." ans"; else $ages = "À partir de ".$agemin." ans"; // ligne de titre echo ' <tr><td align="center">'.$ages."</td></tr>\n"; // génération des deux bargraphes for ($dose = 1; $dose <= $nb_doses; $dose++) { // position du séparateur entre le nombre de vaccinés et le taux $sep = strpos ($args [$dose + 1], "-"); // extraire le taux de vaccination $taux = substr ($args [$dose + 1], $sep + 1); // calculer la largeur en pixels nécessaire pour le bargraphe $largeur = round ($taux * 5); // franciser le taux $taux = str_replace (".", ",", $taux)." %"; // générer la ligne html avec un bargraphe et le taux indiqué echo ' <tr><td><img src="'.DIR_IMG_REF."/barre_dose".$dose.'.bmp" '; echo 'height="40px" width="'.$largeur.'px"> '; echo "<sup>".$taux."</sup></td></tr>\n"; } // séparation entre 2 classes d'âge echo " <tr><td><br></td></tr>\n"; } // jusqu'à ce que toutes les classes d'âge soient traitées while ($ligne && $agemax < 80); // terminé avec ce fichier fclose ($descscv); } // sinon else { // la date de mise à jour du fichier est inconnue copmaj ($descfic, "XXXDATE", "??/??/??"); // message d'erreur echo ' <font color = "#FF0000">'; echo "Fichier contenant les données inaccessible</font>\n"; // recopier le fichier html jusqu'à la liste copie_jusque_chaine ($descfic, "XXXLISTE"); } // copie la suite du fichier html jusqu'à la section du menu copie_jusque_chaine ($descfic, "XXXMENU"); // générer le menu genmenu (basename ($_SERVER ['SCRIPT_NAME'])); // copier la fin de la page html copie_jusque_fin ($descfic); // terminé avec le fichier html fclose ($descfic); } // sinon message d'erreur else echo "Page ".basename ($ficpage)." manquante"; ?>