Inclure des fichiers
Le problème du copier-coller
Site avec 20 pages. Même menu partout. Tu l'as copié-collé 20 fois.
Tu veux ajouter un lien ? Tu ouvres 20 fichiers. Tu en oublies un. Le menu est incohérent. Cauchemar.
C'est ce qu'include résout. Tu inclus un fichier commun. Une seule modification, toutes les pages sont à jour.
include — insérer un fichier
include colle le contenu d'un autre fichier à l'endroit de l'instruction. PHP l'exécute et continue.
Exemple : deux fichiers partagés — l'en-tête et le pied de page.
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title><?= $titre ?? 'Mon site' ?></title>
</head>
<body>
<nav>
<a href="/">Accueil</a>
<a href="/blog">Blog</a>
<a href="/contact">Contact</a>
</nav>
<?= $titre ?? 'Mon site' ?> : si tu définis $titre avant d'inclure le header, il utilise ce titre. Sinon, "Mon site" par défaut.
<footer>
<p>© 2026 Mon site — Tous droits réservés</p>
</footer>
</body>
</html>
Et voilà comment on les utilise dans chaque page :
<?php
$titre = "Accueil — Mon site"; // personnalise le titre de l'onglet
include "includes/header.php"; // insère tout le header ici
?>
<main>
<h1>Bienvenue sur mon site !</h1>
<p>Contenu de la page d'accueil...</p>
</main>
<?php include "includes/footer.php"; ?>
PHP rencontre include, colle le contenu du fichier, puis continue. Comme si tout était dans un seul fichier, mais bien organisé.
require — "indispensable ou rien"
require fonctionne comme include avec une différence clé si le fichier manque :
include→ avertissement, PHP continue.require→ erreur fatale, PHP s'arrête.
Utilise require pour les fichiers indispensables. Si le fichier de config manque, continuer n'a aucun sens.
require "config.php"; // si absent → erreur fatale, tout s'arrête
include "includes/ads.php"; // si absent → avertissement, mais le site continue
include_once et require_once
Ces variantes incluent le fichier une seule fois maximum. Appelle require_once deux fois ? PHP l'inclut la première fois et ignore la deuxième.
Pourquoi ? Si un fichier définit des fonctions et qu'on l'inclut deux fois, PHP plante avec "Cannot redeclare function...".
require_once "fonctions.php"; // inclus la première fois
require_once "fonctions.php"; // ignoré silencieusement — déjà fait
Règle pratique : require_once pour les fichiers de fonctions et config. include pour les morceaux HTML (header, footer).
Le fichier de configuration — exemple concret
Usage classique : tout regrouper dans un config.php. Base de données, constantes, options du site — au même endroit.
<?php
// define() crée une constante — une valeur qui ne peut pas changer
// Contrairement aux variables, les constantes n'ont pas de $
define("DB_HOST", "localhost");
define("DB_NAME", "monsite");
define("DB_USER", "root");
define("DB_PASS", "motdepasse");
define("NOM_SITE", "Mon Super Site");
<?php
require_once "config.php";
// Maintenant toutes les constantes sont disponibles partout
echo "Bienvenue sur " . NOM_SITE;
// Bienvenue sur Mon Super Site
Tu changes de base de données ? Modifie juste config.php. Toutes les pages sont à jour automatiquement.
La structure typique d'un projet PHP
Structure standard d'un vrai projet PHP :
mon-site/
├── config.php ← connexion BDD, constantes globales
├── fonctions.php ← tes fonctions réutilisables
├── includes/
│ ├── header.php ← nav + balise HTML d'en-tête
│ └── footer.php ← pied de page + fermeture HTML
├── index.php ← page d'accueil
├── blog.php ← liste des articles
└── contact.php ← formulaire de contact
Chaque page commence par require_once "config.php" et include "includes/header.php". Elle finit par include "includes/footer.php". Structure cohérente, code partagé, maintenance simple.
include→ insère le contenu d'un fichier. Si le fichier est absent : avertissement mais le script continue.require→ même chose, mais si le fichier est absent : erreur fatale, tout s'arrête.include_once/require_once→ n'inclut le fichier qu'une seule fois, même si l'instruction est appelée plusieurs fois.- Utilise
require_oncepour la config et les fonctions partagées. - Utilise
includepour les morceaux de HTML (header, footer). - Un fichier inclus a accès aux variables du fichier qui l'inclut.