Code source du fichier voir.php

<?php
    // constantes numériques
    require ("constantes.php");

    // fonctions d'affichage de portions de pages HTML
    require ("acces_page.php");

    // affichage du code source d'un fichier
    require ("affsource.php");

    // génération du menu en colonne de gauche
    require ("genmenudoc.php");


    // Début du programme principal

    // si un nom de page a été passé en paramètre
    if (isset ($_GET ['page']))
        // le récupérer
        $page = strtolower ($_GET ['page']);
    // sinon
    else
        // page d'accueil par défaut
        $page = "accueil";

    // fabriquer nom et le le chemin d'accès à la page à afficher
    $ficpage = DIR_PAGEDOC."/".$page.".html";

    // si la page cherchée n'existe pas
    if (! file_exists ($ficpage))
        // choisir la page d'erreur en remplacement
        $ficpage = DIR_PAGEDOC."/manque_page.html";

    // ouvrir le ficher contenant la page à afficher
    $descfic = fopen ($ficpage, "r");

    // si l'ouverture s'est bien passée
    if ($descfic)
    {
        if (basename ($ficpage) == $page.".html")
            // recopier le début de l'entête html en remplaçant noindex par index
            copmaj ($descfic, "noindex,", "index,");
        // sinon
        else
        {
            // recopier la page en mettant à jour le nom du fichier manquant
            copmaj ($descfic, "XXXFICHIER", $page);
            copmaj ($descfic, "XXXFICHIER", $page);
        }

        // lire la ligne qui suit
        $ligne = fgets ($descfic, LG_MAX_HTML);

        // tant qu'on n'arrive pas au menu (ni fin de fichier)
        while ($ligne && strpos ($ligne, "XXXMENU") == 0)
        {
            // si la ligne contient une directive d'exécution
            if ($ligne [0] == "!")
            {
                // séparer l'action à réaliser du fichier concerné
                $posblanc = strpos ($ligne, " ");
                $action  = substr ($ligne, 1, $posblanc - 1);
                $fichier = trim (substr ($ligne, $posblanc));

                // si l'action demandée fait partie des actions prévues
                if ($action == "vsource" || $action == "affiche")
                {
                    // préparer l'affichage du fichier
                    echo '      <font style="font-size:90%">';
                    echo "\n      <pre>\n";

                    // l'afficher de la manière appropriée
                    if ($action == "vsource")
                        affsource ($fichier);
                    else
                        readfile ($fichier);

                    // fin de l'affichage
                    echo "      </pre>\n      </font>\n";
                }
                // sinon
                else
                    // message d'erreur
                    echo '    <font color="#ff0000">Action '.$action." inconnue</font><br>\n";
            }
            // sinon (cas général)
            else
                // afficher la ligne
                echo $ligne;

            // lire la ligne suivante
            $ligne = fgets ($descfic, LG_MAX_HTML);
        }

        // générer le menu
        genmenudoc ($page);

        // 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 ".$page." manquante";
?>