Quand on récupère un chemin menant vers un répertoire avec un client FTP, il arrive souvent que ce chemin soit différent de celui de PHP.
exemple :
le répertoire « classes » est bien à la racine du FTP, on pense donc pouvoir viser son contenu avec un chemin absolu :
require_once '/classes/contenu.php';
et on ce retrouve avec une erreur d’inclusion sous cette forme :
Fatal error: require_once() [function.require]: Failed opening required '/classes/contenu.php' (include_path='/mnt/119/sdb/2/f/web.codeur/include:.:/usr/php5/lib/php') in /mnt/129/sdb/6/f/web.codeur/test.php on line 21
Donc pour être certain d’un chemin, le plus simple est d’exécuter un tout petit script PHP :
echo realpath('./');
dans mon cas, ce script me donne ce résultat :
/mnt/119/sdb/2/f/web.codeur/classes
ce qui n’a rien à voir avec l’affichage du client FTP.
je peux donc maintenant définir une constante dans un fichier de configuration :
define('DIR_CLASSES', '/mnt/119/sdb/2/f/web.codeur/classes/');
et l’utiliser dans tous les fichiers ayant besoin d’inclure les classes.
exemple :
require_once DIR_CLASSES.'contenu.php';