Une des fonctionnalités les plus simples et des plus utiles est l'inclusion de page. On peut très facilement inclure toute ou une partie de page dans une autre page.
Cela évite de copier x fois le même code (pour les en-têtes, les menus,etc…).
Autre avantage, si on veut modifier son menu par exemple, au lieu d'apporter cette modification sur chaque page,
il suffira de modifier le fichier "menu.php".
La pratique
Pour exemple, créons un fichier PHP pour y insérer uniquement le code HTML correspondant au menu :
Code PHP
<div id="menu">
<div class="element_menu">
<h3>Titre menu</h3>
<ul>
<li><a href="page1.html">Lien</a></li>
<li><a href="page2.html">Lien</a></li>
<li><a href="page3.html">Lien</a></li>
</ul>
</div>
</div>
 |
Une page PHP peut très bien ne contenir aucune balise PHP (rare). Dans ce cas, cela devient une page XHTML classique qui n'est pas modifiée avant envoi. |
En théorie, on aurait pu enregistrer cette page en .html, mais, pour ne pas mélanger des pages .php et .html, mieux vaut ne travailler qu'avec des pages .php.
Ceci fait, reprendre les pages de notre site, par exemple la page d'accueil nommée index.php. Remplacer le code menu par le code PHP suivant :
Code PHP
<?php
include("menu.php"); ?>
Cette instruction demande à l'ordinateur :
"Insère ici le contenu de la page menu.php".
 |
Contrairement à echo , on a mis des parenthèses autour des guillemets. echo était une exception.
include , en réalité, comme echo , a une structure de langage particulière et peut s'utiliser avec ou sans parenthèses. |
Ce qui pourrait donner en remplaçant chaque code source répétitif par un "include" :
Code PHP
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Mon site</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<?php
include("entete.php"); ?>
<?php
include("menus.php"); ?>
<div id="corps">
<h1>Mon site</h1>
<p>
Bienvenue sur mon site<br />
bla, bla, bla…
</p>
</div>
<?php
include("pied_de_page.php"); ?>
</body>
</html>
 |
Ce code suppose que la page index.php et celles qui sont incluses (comme menu.php ), sont dans le même dossier.
Si menu.php avait été dans un sous-dossier appelé "includes", il aurait fallu écrire :
<?php include("includes/menu.php"); ?> . Idem qu'en XHTML. |
Voici le schématiquement ce qui se passe :