Article publié le samedi 13 mars 2004 par ALL HTML.
Cet article est classé dans les catégories « PHP »
Généralité
Les deux fonctions include et require permettent d'insérer dans un script le code contenu dans un fichier.
Exemple :
<?php include "phrase.txt";?>
En mettant cet include dans toutes les pages du site et en mettant par exemple la phrase du jour dans le fichier "phrase.txt", il suffit de modifier le contenu du fichier texte pour que la modification s'effectue sur toutes les pages.
Mais l'inclusion ne se limite pas à du texte, on peut tout aussi bien insérer du code PHP.
Exemple :
<?php include "phrase.php3";?>
Où le contenu du fichier phrase.php3 serait :
<?php
$phrase="Phrase du jour";
print("La phrase du jour est : ");
print($phrase);
?>
L'utilisation la plus courante de ces fonctions est de loin l'inclusion des entêtes, des menus et des bas de page qui sont présents sur toutes les pages du site. Par exemple, si on ne veut pas utiliser de "frames", qui sont source de conflit avec certains navigateurs, on est obligé de remettre le menu sur chaque page.
Alors qu'avec une inclusion PHP, il suffit de définir le menu dans un fichier et de l'appeler sur chaque page.
html146.gif
Ensuite lors d'une modification du menu, un seul fichier est à modifier pour mettre à jour le site entier. Cette manière de procéder prend toute son importance avec la mise à jour d'un site comportant des dizaines de pages.
Note : Attention cependant à limiter à 2 voir 3 appels d'include, ceci pour des raisons de ressources serveurs.
Passage de variables
Le contenu du fichier "inclus" est ajouté directement au script principal. Les variables sont donc accessibles aussi bien à partir du script qu'à partir du fichier.
Exemple :
<?php $phrase="Phrase du jour"; include "phrase.php3";?>
Le fichier "phrase.php3" peut donc interpréter la valeur de la variable "$phrase".
Contenu du fichier "phrase.php3" :
<?php
print("La phrase du jour est : ");
print($phrase);
?>
Il est donc inutile de faire :
<?php include "phrase.php3?jour=1";?>
D'ailleurs l'appel de la fonction ne fonctionnera pas.
Include ou Require ?
La différence majeure entre les deux fonctions réside dans le fait que "require" ne s'exécute qu'une seule fois à l'appel de la fonction alors que "include" s'exécute à chaque appel. Ce qui implique que dans une boucle, il faut utiliser include pour que le fichier soit inclus à chaque passage.
Il faut savoir aussi que require, à la différence de include, ne peut pas retourner de valeur comme une fonction standard.
<?php
if ($jour==1)
{
return 1;
}
?>
Ce script fonctionnera uniquement en utilisant include.
Commenter cette publication
-
Commentaire publié le dimanche 11 juin 2006 - 14h18 par csseur
-
Bonjour,
je cherche à pouvoiur actualiser le contenu de l'include (et seulement le contenu de l'include) via un bouton de rafrichissement. peut-on aussi mettre un refresh automatique?
pour l'instant j'ai une iframe avec:
<meta http-equiv="refresh" content="1755">
et
<img src="img/reload.png" onclick="window.location.reload(true)" width="32" height="32" alt="rafraîchir" title="rafraîchir" />
(je veux remplacer mes iframe par des includes)
@++
-
Commentaire publié le lundi 12 juin 2006 - 01h45 par carambarocaramel1
-
ça n'est pas possible à faire en php seul ... Par contre il est important de noter les différentes façon d'inclures des documents:
1 - require('test.php');
2 - require_once('test.php');
3 - include('test.php');
4 - include_once('test.php');
1 : si le fichier n'est pas trouvé : erreur fatale, arrêt du script.
2 : si le fichier n'a pas déjà été inclus on se retrouve avec le cas n°1 (on tente d'inclure, si erreur: arrêt du script)
3 : include : si le fichier n'est pas trouvé, on continue en notifiant l'erreur
4 - pareil que 3 sauf que si le fichier a déjà été inclus il n'y a pas d'erreur affiché.
Notez également que l'arrêt du script ne veut pas dire l'arrêt de l'exécution de tous les scripts en cours.
Petite explication.
Soit deux scripts:
index.php
<?php
include('monfichier.php');
echo "bonjour\n";
?>
monfichier.php:
<?php
require('pageinexistante.php');
?>
Affichera :
"page inexistante not found"
"bonjour
"
L'erreur fatale étant exécutée DANS monfichier.php c'est ce fichier là qui se foire. Le premier include exécute un script qui s'arrête vu que le require n'est pas satisfait. Mais, le index.php continuera de tourner !
Il me semblait nécessaire de préciser tout cela ;-)
De plus il faut corriger une petite imprécision:
"
<?php include "phrase.php3?jour=1";?>
D'ailleurs l'appel de la fonction ne fonctionnera pas."
<?php
print "le jour est le n°".$_GET['jour'];
?>
affichera bien "le jour est le n°1".
(appeler un script en rajoutant ?variable=valeur envoie le contenu de valeur à l'indice 'variable' du tableau $_GET
$_GET['variable'] = 'valeur';
)
-
Commentaire publié le mardi 21 octobre 2008 - 10h42 par wem
-
bonjour à tous, et merci pour ces explications claires et utiles.
j'essaye depuis un bon moment de fouiller sur le net afin de trouver la fonction qu'il me faut mais rien n'y fait.
ma page web (php) est divisée en deux, a gauche un menu, et à droite une galerie photo. Comment puis-je faire pour que quand je clique sur un bouton il charge la galerie externe ( galerie.php) dans une zone que je définie, en l'occurrence un tableau.
Merci d'avance. :)
Commenter cette publication
Vous devez obligatoirement vous identifier en tant que membre pour participer à cette discussion.
Discutez et échangez sur ce thème dans
notre forum PHP - SQL.