PHP Facile!
existe aussi en version
SQL et XML

6.Le langage PHP

6.5.Include

6.5.1.Introduction

Pour résoudre un problème complexe, bien souvent, la meilleure solution consiste à le découper en plusieurs petits problèmes plus simples à appréhender. Il en est de même pour les sites web.
Généralement, un script PHP est composé d'appels à des fonctions que l'on peut regrouper par thèmes (manipulation de chaînes de caractères, accès à une base de données, lecture dans un fichier, etc...). Il est alors possible d'associer à chaque thème un ou plusieurs scripts, pour constituer des bibliothèques de fonctions.
Par extension, nous verrons qu'il est également possible de créer des scripts contenant des portions de présentation (entête, bandeau supérieur, menu, pied de page) et de les assembler par simple inclusion dans un script principal.
Enfin, nous verrons qu'il peut être parfois assez difficile de localiser avec précision les scripts à inclure et nous présenterons les différentes façon d'y remédier.
Vous devrez également prendre connaissance des règles de sécurité liées à l'utilisation des fonctions présentées dans ce chapitre.

6.5.2.Include et les bibliothèques de fonction

Pour pouvoir utiliser des scripts de déclaration de fonctions depuis le script exécuté, il suffira de les inclure et pour cela, nous disposons de la fonction (ou instruction) include() qui, en quelque sorte se décline en include_once(), require() et require_once().
Un appel à include() suivi d'un nom de fichier aura tout simplement pour effet d'en inclure son contenu à l'endroit de l'appel.
Ainsi le script suivant
<?php
include("include_inc.php");

$resultat = cube(3);
echo $resultat;
?>
qui fait appel à
<?php
function cube($x) {
     return $x*$x*$x;
}
?>
est équivalent à
<?php
function cube($x) {
     return $x*$x*$x;
}

$resultat = cube(3);
echo $resultat;
?>
  • Vous noterez toutefois que le fichier inclus est considéré comme un fichier texte brut (ou HTML) et qu'il faut donc "ré-ouvrir" les balises <?php pour intégrer du code PHP. De ce fait, le fichier inclus est un fichier PHP comme un autre.
  • Nous prendrons pour habitude de donner une extension _inc.php aux fichiers destinés à être inclus.
  • Le chemin du fichier inclus (s'il n'est pas donné de façon absolue) doit être le chemin relatif au script appelé et non par rapport au script d'où est fait le include. Il y a en effet différence entre les deux lorsque le fichier faisant un include est lui-même un fichier inclus (par le script appelé). Pour éviter tout problème lié à ce point, veuillez consulter la section "Erreurs fréquentes".

6.5.3.include_once, require et require_once

Nous ne reviendrons pas sur l'historique et les changements de comportement des fonctions de type include(). Nous nous contenterons donc d'en décrire les propriétés depuis PHP>=4.0.2.
Lorsque des scripts inclus, incluent eux-même d'autres scripts, il peut arriver que bien malgré vous, vous incluiez plusieurs fois le même script. Si ce dernier contient une déclaration de fonction ou de classe, cela conduira inévitablement à une erreur de redéclaration. Pour éviter ce problème, vous pouvez utiliser include_once() à la place d'include(). Son comportement est identique si ce n'est qu'un script déjà inclus ne sera pas inclus une seconde fois.
Lorsqu'un script inclus par include() ou include_once() lève une erreur, le script principal poursuit son exécution comme si de rien n'était. Même si dans certains cas, cela peut-être le comportement espéré, il existe également de nombreux cas, pour lesquels, l'échec du script inclus est rédibitoire. Aussi, si vous préférez que le script principal s'arrête en cas d'échec du script inclus privilégiez l'instruction require() ou require_once().