Code source du fichier table-evol-age.php

<?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");



    // récupérer la classe d'âge sélectionnée
    $cl_age = $_GET ['cl_age'];

    // modèle de page html (dépend si classe d'âge déjà sélectionnée ou non)
    if ($cl_age)
        $ficpage = DIR_PAGES."/table-evol-age.html";
    else
        $ficpage = DIR_PAGES."/table-evol-select-age.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'au formulaire de sélection de classe d'âge
        copie_jusque_option ($descfic);

        // liste des classes d'âge
        $liste_cl_age = array (4, 9, 11, 17, 24, 29, 39, 49, 59, 64, 69, 74, 79, 80);

        // initialisations
        $agemin = 0;
        $indice = 0;

        // génération de la liste des classes d'âge
        do
        {
            // récupérer une classe d'âge
            $agemax = $liste_cl_age [$indice];

            // générer l'option
            echo "              <option ";

            // si classe d'âge précédemment choisie
            if ($cl_age == $agemax)
                // la sélectionner
                echo "selected ";

            // valeur de la classe d'âge
            echo 'value = "'.$agemax.'">';

            // générer le texte associé
            if ($agemin)
            {
                if ($agemax < 80)
                    echo "De ".$agemin." à ";
                else
                    echo "À partir de ";
            }
            else
                echo "Jusqu'à ";

            // fin de la balise <option>
            echo $agemax." ans</option>\n";

            // âge minimal pour la classe d'âge suivante
            $agemin = $agemax + 1;

            // avancer dans la liste
            $indice ++;
        }
        while ($agemax < 80);

        // si une classe d'âge a été sélectionnée
        if ($cl_age)
        {
            // recopier le début du fichier html jusqu'à la zone contenu
            copie_jusque_chaine ($descfic, "contenu", 1);

            // construire le nom du fichier csv
            if ($cl_age < 10)
                $cl_age = "0".$cl_age;

            $ficcsv = DIR_CSV."/vacsi-age-".$cl_age.".csv";

            // l'ouvrir en lecture
            $descscv = fopen ($ficcsv, "r");

            // si l'ouverture s'est bien passée
            if ($descscv)
            {
                // recopier le fichier html jusqu'au contenu de la table
                copie_jusque_chaine ($descfic, "XXXTABLE");

                // lire une ligne du fichier csv
                $ligne = trim (fgets ($descscv, LG_MAX_CSV));

                // tantque non fin de fichier
                while ($ligne)
                {
                    // séparer les nombres de vaccination des taux
                    $pos_point = strpos ($ligne, ".");
                    $deblig = substr ($ligne, 0, $pos_point);
                    $finlig = substr ($ligne, $pos_point);

                    // franciser les . décimaux
                    $finlig = str_replace (".", ",", $finlig);

                    // rajouter les pourcentages
                    $finlig = str_replace (";", " %;", $finlig)." %";

                    // mettre la ligne lue au format html
                    $ligne = str_replace (";", "</td><td>", $deblig.$finlig);

                    // générer la ligne dans la table
                    echo "          <tr align=\"center\">\n";
                    echo "              <td>".$ligne."</td>\n";
                    echo "          </tr>\n";

                    // passer à la ligne suivante du fichier csv
                    $ligne = trim (fgets ($descscv, LG_MAX_CSV));
                }

                // terminé avec ce fichier
                fclose ($descscv);
            }
            // sinon
            else
            {
                // message d'erreur
                echo '        <font color = "#FF0000">';
                echo "Fichier contenant les données inaccessible</font>\n";

                // sauter la table
                sauter_jusque_chaine ($descfic, "</table>");
            }
        }

        // 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";
?>