include
L'expression de langage include inclut et exécute
le fichier spécifié en argument.
Cette documentation s'applique aussi à l'instruction de langage
require.
Les fichiers sont inclus suivant le chemin du fichier fourni ; si aucun
n'est fourni, l'include_path
sera vérifié. Si le fichier n'est pas trouvé dans l'
include_path,
include vérifiera dans le dossier du script appelant
et dans le dossier de travail courant avant d'échouer. L'instruction
include émettra E_WARNING si elle
ne peut trouver le fichier; ce comportement est différent de
require, qui émettra E_ERROR.
Notez que include et require
vont lancer des erreurs de type E_WARNING, si le
fichier n'est pas accessible, avant de lancer une erreur de type
E_WARNING ou E_ERROR, respectivement.
Si un chemin est défini, absolu (commençant par une lettre de lecteur suivie
de \ pour Windows, ou / pour Unix/Linux)
ou relatif (commençant par . ou ..), l'include_path
sera ignoré. Par exemple, si un nom de fichier commence par ../,
PHP cherchera dans le dossier parent pour y trouver le fichier spécifié.
Pour plus d'informations sur la façon dont PHP gère les fichiers inclus ainsi
que le chemin d'inclusion, reportez-vous à la documentation relative
à l'include_path.
Lorsqu'un fichier est inclus, le code le composant hérite de la
portée des variables
de la ligne où l'inclusion apparaît. Toutes les variables disponibles à cette
ligne dans le fichier appelant seront disponibles dans le fichier appelé, à
partir de ce point. Cependant, toutes les fonctions et classes définies dans
le fichier inclus ont une portée globale.
Exemple avec include
test.php
]]>
Si l'inclusion intervient à l'intérieur d'une fonction,
le code inclus sera alors considéré comme faisant partie de la
fonction. Cela modifie donc le contexte de variables accessibles.
Une exception à cette règle : les constantes magiques sont analysées
par l'analyseur avant que l'inclusion n'intervienne.
Inclusion de fichiers dans une fonction
]]>
Il est important de noter que lorsqu'un fichier est
include ou require,
les erreurs d'analyse apparaîtront en HTML tout
au début du fichier, et l'analyse du fichier
parent ne sera pas interrompue. Pour cette raison, le code
qui est dans le fichier doit être placé entre
les balises
habituelles de PHP.
Si les gestionnaires d'inclusion d'URL
sont activés dans PHP,
vous pouvez localiser le fichier avec une URL (via HTTP ou
bien avec un gestionnaire adapté : voir
pour une liste des protocoles), au lieu d'un simple chemin
local. Si le serveur distant interprète le fichier comme du code
PHP, des variables peuvent être transmises au serveur distant
via l'URL et la méthode GET. Ce n'est pas, à strictement
parler, la même chose que d'hériter du contexte de variable.
Le fichier inclus est en fait un script exécuté à distance,
et son résultat est inclus dans le code courant.
Utiliser l'instruction include via HTTP
]]>
Alerte de sécurité
Un fichier distant peut être traité sur le serveur distant
(dépendamment de l'extension du fichier et si le serveur distant
exécute PHP ou non) mais il doit toujours produire un script PHP valide
parce qu'il sera traité sur le serveur local. Si le fichier du serveur
distant doit être traité sur place et affiché seulement,
readfile est une fonction beaucoup plus appropriée.
Autrement, vous devriez bien faire attention à sécuriser le script distant
afin qu'il produise un code valide et désiré.
Voir aussi
travailler avec les fichiers distants,
fopen et
file pour des informations relatives.
Gestion du retour : include retourne &false; en cas
d'erreur et émet un avertissement. Les inclusions avec succès, y compris si
elles sont écrasées par le fichier inclus, retourne
1. Il est possible d'exécuter la structure
de langage return à l'intérieur d'un fichier
inclus afin de déterminer le processus dans ce fichier, et retourner
au script qui l'a appelé. De plus, il est possible de retourner des
valeurs depuis des fichiers inclus. Vous pouvez prendre la valeur
depuis l'appel au fichier inclus comme vous le souhaitez depuis une
fonction normale. Ce n'est cependant pas possible lors de l'inclusion de
fichiers distants, et ce, tant que la sortie du fichier distant n'a pas
de balises PHP de début
et de fin valides (tout comme pour les fichiers locaux).
Vous pouvez déclarer les variables nécessaires à l'intérieur de ces balises
et elles seront introduites à l'endroit où le fichier a été inclus.
Comme include est une structure de langage particulière,
les parenthèses ne sont pas nécessaires autour de l'argument. Faites attention
lorsque vous comparez la valeur retournée.
Comparaison de la valeur de retour d'une inclusion
]]>
include et return
noreturn.php
testreturns.php
]]>
$bar a la valeur de &one; car
l'inclusion était réussie. Notez la différence entre les deux
exemples ci-dessus. Le premier utilise la commande
return
dans le fichier inclus, alors que le second ne le fait pas.
Si le fichier ne peut être inclus, &false; est retourné et une erreur
de niveau E_WARNING est envoyée.
S'il y a des fonctions définies dans le fichier inclus, elles peuvent être
utilisées dans le fichier principal si elles sont avant le
return ou après.
Si le fichier est inclus deux fois, PHP émettra une erreur fatale car les
fonctions ont déjà été déclarées.
Il est recommandé d'utiliser include_once
au lieu de vérifier si le fichier a déjà été inclus et donc de retourner
conditionnellement l'inclusion du fichier.
Une autre façon d'inclure un fichier PHP dans une variable est de capturer
la sortie en utilisant les fonctions de
contrôle de sortie avec
include. Par exemple :
Utilisation de la sortie du buffer pour inclure un fichier PHP dans
une chaîne
]]>
Pour automatiquement inclure des fichiers dans vos scripts, voyez également
les options de configuration
auto_prepend_file et
auto_append_file
du &php.ini;.
¬e.language-construct;
Voir aussi
require,
require_once,
include_once,
get_included_files,
readfile, virtual, et
include_path.