<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/language.control-structures.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'fr',
  ),
  'this' => 
  array (
    0 => 'function.include.php',
    1 => 'include',
    2 => 'include',
  ),
  'up' => 
  array (
    0 => 'language.control-structures.php',
    1 => 'Les structures de contr&ocirc;le',
  ),
  'prev' => 
  array (
    0 => 'function.require.php',
    1 => 'require',
  ),
  'next' => 
  array (
    0 => 'function.require-once.php',
    1 => 'require_once',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'fr',
    'path' => 'language/control-structures/include.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.include" class="sect1">
 <h2 class="title">include</h2>
 <p class="verinfo">(PHP 4, PHP 5, PHP 7, PHP 8)</p>
 <p class="simpara">
  L&#039;expression de langage <code class="literal">include</code> inclut et exécute
  le fichier spécifié en argument.
 </p>
 <p class="simpara">
  Cette documentation s&#039;applique aussi à l&#039;instruction de langage
  <span class="function"><a href="function.require.php" class="function">require</a></span>.
 </p>
 <p class="simpara">
  Les fichiers sont inclus suivant le chemin du fichier fourni ; si aucun
  n&#039;est fourni, l&#039;<a href="ini.core.php#ini.include-path" class="link">include_path</a>
  sera vérifié. Si le fichier n&#039;est pas trouvé dans l&#039;
  <a href="ini.core.php#ini.include-path" class="link">include_path</a>,
  <code class="literal">include</code> vérifiera dans le dossier du script appelant
  et dans le dossier de travail courant avant d&#039;échouer. L&#039;instruction
  <code class="literal">include</code> émettra <strong><code><a href="errorfunc.constants.php#constant.e-warning">E_WARNING</a></code></strong> si elle
  ne peut trouver le fichier; ce comportement est différent de
  <span class="function"><a href="function.require.php" class="function">require</a></span>, qui émettra <strong><code><a href="errorfunc.constants.php#constant.e-error">E_ERROR</a></code></strong>.
 </p>
 <p class="simpara">
  Il est à noter que <code class="literal">include</code> et <code class="literal">require</code>
  vont lever des erreurs supplémentaires de type <strong><code><a href="errorfunc.constants.php#constant.e-warning">E_WARNING</a></code></strong>, si le
  fichier n&#039;est pas accessible, avant de lever une erreur de type
  <strong><code><a href="errorfunc.constants.php#constant.e-warning">E_WARNING</a></code></strong> ou <strong><code><a href="errorfunc.constants.php#constant.e-error">E_ERROR</a></code></strong>, respectivement.
 </p>
 <p class="simpara">
  Si un chemin est défini, absolu (commençant par une lettre de lecteur suivie
  de <code class="literal">\</code> pour Windows, ou <code class="literal">/</code> pour Unix/Linux)
  ou relatif (commençant par . ou ..), l&#039;<a href="ini.core.php#ini.include-path" class="link">include_path</a>
  sera ignoré. Par exemple, si un nom de fichier commence par <code class="literal">../</code>,
  PHP cherchera dans le dossier parent pour y trouver le fichier spécifié.
 </p>
 <p class="simpara">
  Pour plus d&#039;informations sur la façon dont PHP gère les fichiers inclus ainsi
  que le chemin d&#039;inclusion, se reporter à la documentation relative
  à l&#039;<a href="ini.core.php#ini.include-path" class="link">include_path</a>.
 </p>
 <p class="simpara">
  Lorsqu&#039;un fichier est inclus, le code le composant hérite de la
  <a href="language.variables.scope.php" class="link">portée des variables</a>
  de la ligne où l&#039;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.
 </p>
 <p class="para">
  <div class="example" id="example-1">
   <p><strong>Exemple #1 Exemple avec <code class="literal">include</code></strong></p>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000">vars.php<br /><span style="color: #0000BB">&lt;?php<br /><br />$couleur </span><span style="color: #007700">= </span><span style="color: #DD0000">'verte'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$fruit </span><span style="color: #007700">= </span><span style="color: #DD0000">'pomme'</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">?&gt;<br /></span><br />test.php<br /><span style="color: #0000BB">&lt;?php<br /><br /></span><span style="color: #007700">echo </span><span style="color: #DD0000">"Une </span><span style="color: #0000BB">$fruit</span><span style="color: #DD0000"> </span><span style="color: #0000BB">$couleur</span><span style="color: #DD0000">"</span><span style="color: #007700">; </span><span style="color: #FF8000">// Une<br /><br /></span><span style="color: #007700">include </span><span style="color: #DD0000">'vars.php'</span><span style="color: #007700">;<br /><br />echo </span><span style="color: #DD0000">"Une </span><span style="color: #0000BB">$fruit</span><span style="color: #DD0000"> </span><span style="color: #0000BB">$couleur</span><span style="color: #DD0000">"</span><span style="color: #007700">; </span><span style="color: #FF8000">// Une pomme verte<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>
 </p>
 <p class="simpara">
  Si l&#039;inclusion intervient à l&#039;intérieur d&#039;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 <a href="language.constants.magic.php" class="link">constantes magiques</a> sont analysées
  par l&#039;analyseur avant que l&#039;inclusion n&#039;intervienne.
 </p>
 <p class="para">
  <div class="example" id="example-2">
   <p><strong>Exemple #2 Inclusion de fichiers dans une fonction</strong></p>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br /></span><span style="color: #007700">function </span><span style="color: #0000BB">foo</span><span style="color: #007700">()<br />{<br />    global </span><span style="color: #0000BB">$couleur</span><span style="color: #007700">;<br /><br />    include </span><span style="color: #DD0000">'vars.php'</span><span style="color: #007700">;<br /><br />    echo </span><span style="color: #DD0000">"Une </span><span style="color: #0000BB">$fruit</span><span style="color: #DD0000"> </span><span style="color: #0000BB">$couleur</span><span style="color: #DD0000">"</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #FF8000">/* vars.php est dans le contexte de foo()     *<br /> * donc $fruit n'est pas disponible hors de   *<br /> * cette fonction. $couleur l'est, car c'est  *<br /> * une variable globale                       */<br /><br /></span><span style="color: #0000BB">foo</span><span style="color: #007700">();                      </span><span style="color: #FF8000">// Une pomme verte<br /></span><span style="color: #007700">echo </span><span style="color: #DD0000">"Une </span><span style="color: #0000BB">$fruit</span><span style="color: #DD0000"> </span><span style="color: #0000BB">$couleur</span><span style="color: #DD0000">"</span><span style="color: #007700">; </span><span style="color: #FF8000">// Une verte<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>
 </p>
 <p class="simpara">
  Lorsqu&#039;un fichier est inclus, l&#039;analyse bascule du mode PHP
  au mode HTML au début du fichier cible, et reprend à la fin
  de celui-ci. Pour cette raison, tout code du fichier cible devant
  être exécuté comme du code PHP doit être placé entre
  <a href="language.basic-syntax.phpmode.php" class="link">des balises PHP
  de début et de fin valides</a>.
 </p>
 <p class="simpara">
  Si les <a href="filesystem.configuration.php#ini.allow-url-include" class="link">enveloppes d&#039;inclusion d&#039;URL</a>
  sont activées dans PHP,
  il est possible de localiser le fichier avec une URL (via HTTP ou
  bien avec une enveloppe adaptée : voir <a href="wrappers.php" class="xref">Liste des protocoles et des gestionnaires support&eacute;s</a>
  pour une liste des protocoles), au lieu d&#039;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&#039;URL et la méthode GET. Ce n&#039;est pas, à strictement
  parler, la même chose que d&#039;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.
 </p>
 <p class="para">
  <div class="example" id="example-3">
   <p><strong>Exemple #3 Utiliser l&#039;instruction <code class="literal">include</code> via HTTP</strong></p>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br /></span><span style="color: #FF8000">/* Cet exemple suppose que www.example.com est configuré pour traiter<br /> * les fichiers .php et non pas les fichiers .txt. De plus,<br /> * 'Work' signifie ici que les variables<br /> * $foo et $bar sont disponibles dans le fichier inclus<br /> */<br /><br />// Ne fonctionne pas : file.txt n'a pas été traité par www.example.com comme du PHP<br /></span><span style="color: #007700">include </span><span style="color: #DD0000">'http://www.example.com/file.txt?foo=1&amp;bar=2'</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">// Ne fonctionne pas : le script cherche un fichier nommé<br />// 'file.php?foo=1&amp;bar=2' sur le système local<br /></span><span style="color: #007700">include </span><span style="color: #DD0000">'file.php?foo=1&amp;bar=2'</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">// Réussi<br /></span><span style="color: #007700">include </span><span style="color: #DD0000">'http://www.example.com/file.php?foo=1&amp;bar=2'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>
 </p>
 <div class="warning"><strong class="warning">Avertissement</strong>
  <h1 class="title">Alerte de sécurité</h1>
  <p class="para">
   Un fichier distant peut être traité sur le serveur distant
   (dépendamment de l&#039;extension du fichier et si le serveur distant
   exécute PHP ou non) mais il doit toujours produire un script PHP valide
   parce qu&#039;il sera traité sur le serveur local. Si le fichier du serveur
   distant doit être traité sur place et affiché seulement,
   <span class="function"><a href="function.readfile.php" class="function">readfile()</a></span> est une fonction beaucoup plus appropriée.
   Autrement, il est recommandé de bien faire attention à sécuriser le script distant
   afin qu&#039;il produise un code valide et désiré.
   </p>
 </div>
 <p class="para">
  Voir aussi
  <a href="features.remote-files.php" class="link">travailler avec les fichiers distants</a>,
  <span class="function"><a href="function.fopen.php" class="function">fopen()</a></span> et
  <span class="function"><a href="function.file.php" class="function">file()</a></span> pour des informations relatives.
 </p>
 <p class="simpara">
  Gestion du retour : <code class="literal">include</code> retourne <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> en cas
  d&#039;erreur et émet un avertissement. Les inclusions avec succès, y compris si
  elles sont écrasées par le fichier inclus, retournent
  <code class="literal">1</code>. Il est possible d&#039;exécuter la structure
  de langage <span class="function"><a href="function.return.php" class="function">return</a></span> à l&#039;intérieur d&#039;un fichier
  inclus afin de déterminer le processus dans ce fichier, et retourner
  au script qui l&#039;a appelé. De plus, il est possible de retourner des
  valeurs depuis des fichiers inclus. Il est possible de récupérer la valeur
  depuis l&#039;appel au fichier inclus comme depuis une
  fonction normale. Ce n&#039;est cependant pas possible lors de l&#039;inclusion de
  fichiers distants, et ce, tant que la sortie du fichier distant n&#039;a pas
  de <a href="language.basic-syntax.phpmode.php" class="link">balises PHP de début
  et de fin valides</a> (tout comme pour les fichiers locaux).
  Il est possible de déclarer les variables nécessaires à l&#039;intérieur de ces balises
  et elles seront introduites à l&#039;endroit où le fichier a été inclus.
 </p>
 <p class="para">
  Comme <code class="literal">include</code> est une structure de langage particulière,
  les parenthèses ne sont pas nécessaires autour de l&#039;argument. Faites attention
  lors de la comparaison de la valeur retournée.
  <div class="example" id="example-4">
   <p><strong>Exemple #4 Comparaison de la valeur de retour d&#039;une inclusion</strong></p>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">// Ne fonctionne pas, évalué comme include(('vars.php') == TRUE), i.e. include('1')<br /></span><span style="color: #007700">if (include(</span><span style="color: #DD0000">'vars.php'</span><span style="color: #007700">) == </span><span style="color: #0000BB">TRUE</span><span style="color: #007700">) {<br />    echo </span><span style="color: #DD0000">'OK'</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #FF8000">// Fonctionne<br /></span><span style="color: #007700">if ((include </span><span style="color: #DD0000">'vars.php'</span><span style="color: #007700">) == </span><span style="color: #0000BB">TRUE</span><span style="color: #007700">) {<br />    echo </span><span style="color: #DD0000">'OK'</span><span style="color: #007700">;<br />}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>
 </p>
 <p class="para">
  <div class="example" id="example-5">
   <p><strong>Exemple #5 <code class="literal">include</code> et <span class="function"><a href="function.return.php" class="function">return</a></span></strong></p>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000">return.php<br /><span style="color: #0000BB">&lt;?php<br /><br />$var </span><span style="color: #007700">= </span><span style="color: #DD0000">'PHP'</span><span style="color: #007700">;<br /><br />return </span><span style="color: #0000BB">$var</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">?&gt;<br /></span><br />noreturn.php<br /><span style="color: #0000BB">&lt;?php<br /><br />$var </span><span style="color: #007700">= </span><span style="color: #DD0000">'PHP'</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">?&gt;<br /></span><br />testreturns.php<br /><span style="color: #0000BB">&lt;?php<br /><br />$foo </span><span style="color: #007700">= include </span><span style="color: #DD0000">'return.php'</span><span style="color: #007700">;<br /><br />echo </span><span style="color: #0000BB">$foo</span><span style="color: #007700">; </span><span style="color: #FF8000">// affiche 'PHP'<br /><br /></span><span style="color: #0000BB">$bar </span><span style="color: #007700">= include </span><span style="color: #DD0000">'noreturn.php'</span><span style="color: #007700">;<br /><br />echo </span><span style="color: #0000BB">$bar</span><span style="color: #007700">; </span><span style="color: #FF8000">// affiche 1<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>
 </p>
 <p class="simpara">
  <code class="literal">$bar</code> a la valeur de <code class="literal">1</code> car
  l&#039;inclusion était réussie. Il est à noter la différence entre les deux
  exemples ci-dessus. Le premier utilise la commande
  <span class="function"><a href="function.return.php" class="function">return</a></span>
  dans le fichier inclus, alors que le second ne le fait pas.
  Si le fichier ne peut être inclus, <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> est retourné et une erreur
  de niveau <strong><code><a href="errorfunc.constants.php#constant.e-warning">E_WARNING</a></code></strong> est envoyée.
 </p>
 <p class="para">
  S&#039;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
  <span class="function"><a href="function.return.php" class="function">return</a></span> 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&#039;utiliser <span class="function"><a href="function.include-once.php" class="function">include_once</a></span>
  au lieu de vérifier si le fichier a déjà été inclus et donc de retourner
  conditionnellement l&#039;inclusion du fichier.
 </p>
 <p class="simpara">
  Une autre façon d&#039;inclure un fichier PHP dans une variable est de capturer
  la sortie en utilisant les fonctions de
  <a href="ref.outcontrol.php" class="link">contrôle de sortie</a> avec
  <code class="literal">include</code>. Par exemple :
 </p>
 <p class="para">
  <div class="example" id="example-6">
   <p><strong>Exemple #6 Utilisation de la sortie du buffer pour inclure un fichier PHP dans
   une chaîne</strong></p>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$string </span><span style="color: #007700">= </span><span style="color: #0000BB">get_include_contents</span><span style="color: #007700">(</span><span style="color: #DD0000">'somefile.php'</span><span style="color: #007700">);<br /><br />function </span><span style="color: #0000BB">get_include_contents</span><span style="color: #007700">(</span><span style="color: #0000BB">$filename</span><span style="color: #007700">) {<br />    if (</span><span style="color: #0000BB">is_file</span><span style="color: #007700">(</span><span style="color: #0000BB">$filename</span><span style="color: #007700">)) {<br />        </span><span style="color: #0000BB">ob_start</span><span style="color: #007700">();<br />        include </span><span style="color: #0000BB">$filename</span><span style="color: #007700">;<br />        return </span><span style="color: #0000BB">ob_get_clean</span><span style="color: #007700">();<br />    }<br />    return </span><span style="color: #0000BB">false</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>
 </p>
 <p class="para">
  Pour automatiquement inclure des fichiers dans les scripts, voir également
  les options de configuration
  <a href="ini.core.php#ini.auto-prepend-file" class="link">auto_prepend_file</a> et
  <a href="ini.core.php#ini.auto-append-file" class="link">auto_append_file</a>
  du <var class="filename">php.ini</var>.
 </p>

 <blockquote class="note"><p><strong class="note">Note</strong>: <span class="simpara">Comme ceci est une structure
    du langage, et non pas une fonction, il n&#039;est pas possible de l&#039;appeler
    avec les <a href="functions.variable-functions.php" class="link">fonctions variables</a> ou <a href="functions.arguments.php#functions.named-arguments" class="link">arguments nommés</a>.
</span></p></blockquote>

 <p class="simpara">
  Voir aussi
  <span class="function"><a href="function.require.php" class="function">require</a></span>,
  <span class="function"><a href="function.require-once.php" class="function">require_once</a></span>,
  <span class="function"><a href="function.include-once.php" class="function">include_once</a></span>,
  <span class="function"><a href="function.get-included-files.php" class="function">get_included_files()</a></span>,
  <span class="function"><a href="function.readfile.php" class="function">readfile()</a></span>, <span class="function"><a href="function.virtual.php" class="function">virtual()</a></span>, et
  <a href="ini.core.php#ini.include-path" class="link">include_path</a>.
 </p>
</div><?php manual_footer($setup); ?>