Inclure « correctement » des fichiers en PHP

11 février 2008 par Olivier Mansour

Bon, soyons clair, voici la bonne méthode pour inclure des fichiers PHP.

Par exemple, si vous voulez inclure le fichier raoul.php sous le répertoire include.

<?php
require_once (dirname(__FILE__).'/include/raoul.php');

La constante __FILE__ nous donne le chemin absolu du fichier courant et dirname son répertoire.

Vous me direz, quel intérêt de faire cette manipulation, un simple

<?php
require_once ('include/raoul.php');

est suffisant.

Certes, le répertoire courant étant par défaut inclus dans l’include path, cela va marcher … mais uniquement si vous appelez directement ce fichier depuis votre navigateur ! Si vous l’incluez depuis un autre script se trouvant dans un autre répertoire c’est la Fatal error garantie. Enfin, spécifier le chemin absolu fait un peu gagner en performances car PHP n’a pas à examiner tous les répertoires indiqué dans include_path.

Pour soutenir ce site, n'hésitez pas à cliquer sur un de ces liens :

  1. Par j.ducastel le 11 février 2008 | Répondre

    Et si on souhaite simplifier la gestion des dépendances, il y a aussi webappkit ( http://webappkit.net )

  2. Par olivier le 24 février 2008 | Répondre

    Avec PHP 5.3 on peut utiliser __DIR__ qui est l’équivalent de dirname(__FILE__).

  3. Par Diebol le 1 janvier 2009 | Répondre

    Salut Please i’ need your help
    Chez moi ca ne marche pas
    J’ai une page.php dans un repertoire1 et dans cette Page1 j’ai un include qui appelle Traitement.php dans un repertoire2
    Html..Page1….Repertoire1

    Reponse de IE /
    Fatal error: require_once() [function.require]: Failed opening required ‘C:\wamp\www\LearningFF\Essai/EnTete.php’ (include_path=’.;C:\php5\pear’) in C:\wamp\www\LearningFF\Essai\Notions.php on line 9

  4. Par Olivier Mansour le 1 janvier 2009 | Répondre

    @Diebol, désolé, je ne peux pas t’aider précisément. A la ligne 9 de Notions.php tu fais appel à un fichier EnTete.php qui n’est manifestement pas dans le même répertoire. Il te faut donc débugguer cette ligne.

    bon courage

  1. 3 Trackback(s)

  2. fév 11, 2008: Laurent Deséchalliers : “Tech”Blog » [Veille>Dev] Inclure “correctement” des fichiers en PHP

Commentaires

RSS des commentaires pour ce post