Utilisation

Pour des raisons de lisibilité et de maintenabilité, il est préférable de séparer le contenu en fichiers thématiques (par exemple, les données contenant les paramètres de connexion à une base de données).
On utilisera alors les fonctions require et include pour faire appel au contenu à utiliser. Il s'agit virtuellement d'une copie des données de la ressource appelée à l'endroit de l'appel.

La différence entre ces fonctions est que require n'évalue qu'une fois l'appel et comporte un caractère obligatoire (et donc une erreur en cas d'échec). La fontion include évalue dynamiquement le fichier à cahque appel.

Ces fonctions comportent chacune une variante permettant de limiter le risque de boucle lorsque les fichiers inclus appelent eux-même d'autres fichiers. On peut donc utiliser include_once et require_once .

Exemple de mise en oeuvre

Vous trouverez l'illustration du principe d'inclusion dans l'exemple suivant. L'ensemble de ces fichiers sont dans un sous répertoire site pour faciliter la compréhension. Copier le contenu dans les fichiers correspondants et regardez leur effet.

Définition

common/footer.php

Simple pied de page ne contenant que de l'HTML.
<!-- Pied de page -->

<footer>
<nav>
<ul>
<li><a href="#logo">haut de page</a></li>
</ul>
</nav>
</footer> 

</body>
</html>

02/menu.php

Menu qui créé les liens de navigation à partir d'un tableau associatif de liens.
<?php
    $navigation = array('Google'=>'http://www.google.fr', 'Wikipedia'=>'http://fr.wikipedia.org');
?>

common/header.php

Entête du fichier.
<!doctype html>
<html lang="fr">
<head>
    <meta charset="utf-8" />
    <title><?php echo $titre ?></title>
    <?php $style = "../../../css/alsa.css"; echo "<link rel=\"stylesheet\" href=\"$style\" type=\"text/css\" />"; ?>
</head>
<body>

<!-- Entete -->

<header>
    <h1><?php echo $titre ?></h1>
</header>

<?php
include("menu.php");
if(isset($navigation))
{
    echo "<!-- Navigation -->\n<nav><ul>\n";
    foreach ($navigation as $titreLien => $lien)
    {
        echo "<li><a href=\"$lien\" title=\"$titreLien\">$titreLien</a></li>\n";
    }
    echo "</ul></nav>\n";
}
?>


02/index.php

Fichier principal. Contient les valeurs et les appels aux autres ressources.
<?php
    $titre = "Exemple de navigation";
	include('../common/header.php');
	
	echo '<section><header><h2>Contenu spécifique</h2></header>Contenu propre à la page.</section><section><header><h2>Exercice avancé</h2></header><a href="posts.php">Liste d\'articles</a></section>';
	
	include('../common/footer.php');
?>