Structuration d'un site avec include()

La fonction include() permet d'inclure une portion de code située dans un autre fichier. Dans le code ci-dessous, cette fonction permet d'éviter de réécrire les parties répétitives d'un site, comme l'entête ou le pied de page, habituellement dupliqués dans un site statique réalisé en HTML.

Fonctionnement

Le paramètre de la fonction include() indique le chemin de la portion de code à insérer :

<?php
include('page_ou_code.php');
?>

Exemple avec la construction d'un site simple

Ce petit site simple, constitué de 3 pages, va profiter des bienfaits de la fonction include(). Inutile de répéter les entêtes et les pieds de page, seuls les contenus des pages varient.

include

Page index.php

Le code de démarrage index.php intégrera les contenus de <main> selon les liens cliqués grâce à la variable $_GET['page']. Lors du premier chargement, c'est la section accueil qui sera intégrée faute d'existence de la variable $_GET['page'].

<!doctype html>
<html lang="fr">
    <head>
        <meta charset="utf-8">
        <title>Mon superbe site</title>
    </head>
    <body>
        <nav>
            <a href="?page=accueil.html">Accueil</a>
            <a href="?page=services.html">Services</a>
            <a href="?page=contact.html">Contact</a>
        </nav>
        <main>
        <?php
        if(isset($_GET['page']))
            include($_GET['page']);
        else
            include('accueil.html');
        ?>
        </main>
        <footer>
            <p>© La Boite 2023 - Tous droits réservés</p>
        </footer>
    </body>
</html>

Le lien :

<a href="?page=accueil.html">Accueil</a>

est équivalent à :

<a href="index.php?page=accueil.html">Accueil</a>

Ce lien recharge la page actuelle et donne naissance à la variable page affectée de la valeur accueil. On pourra alors récupérer la valeur de la variable page avec la méthode $_GET.

Page accueil.html

Les pages à inclure n'ont pas besoin des balises structurelles HTML car elles utiliseront celles de la page index.php.

Nommez cette page accueil.html

<h1>Mon superbe site</h1>
<p>Bienvenue sur notre site génial.</p>

Page services.html

Nommez cette page services.html

<h1>Nos services</h1>
<p>Voici les services que nous proposons.</p>

Page contact.html

Nommez cette page contact.html

<h1>Contact</h1>
<p>Contactez-nous et envoyez-nous de l'argent.</p>

Simplicité des modifications

C'est terminé. A présent, supposons que vous souhaitiez mettre à jour la date du copyright dans le pied de page ou que vous souhaitiez modifier le menu dans l'entête. Vous n'avez qu'à le faire une seule fois sur la page index.php pour mettre à jour l'ensemble des pages de votre site.
Sur un site traditionnel en HTML, vous devez le faire autant de fois que le nombre de pages de votre site. Quel gain de temps et quelle simplicité ! Merci PHP 🙂