La communauté ALL HTML c'est 60183 membres à ce jour dont 0 inscrits aujourd'hui et 17 depuis une semaine.

Fonctions include

Photo de ALL HTML 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.

VOS COMMENTAIRES ...

Commenter cette publication

Photo de csseur Commentaire publié le dimanche 11 juin 2006 à 14 h 18 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)


@++
Photo de carambarocaramel1 Commentaire publié le lundi 12 juin 2006 à 01 h 45 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&deg;".$_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';
)
Photo de wem Commentaire publié le mardi 21 octobre 2008 à 10 h 42 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.

Forums de discussions associés

Discutez et échangez sur ce thème dans notre forum PHP - SQL.

Liens sponsorisés

ACCÉS COMMUNAUTÉ

Rejoignez ALL HTML

Publiez vos articles, actualités, communiqués ... Donnez votre avis, partagez votre réseau, rencontrez d'autres membres et participez à la vie de la communauté.