2011-09-05 6 views
0

Je veux faire référence à un fichier qui se trouve dans mon répertoire racine. Le problème est que ce fichier est utilisé par plusieurs autres scripts PHP qui peuvent avoir deux ou trois chemins de profondeur.Chemin relatif et absolu

Je référence à ce par

'../database_sql/dbconnect.php' ; 1 deep 
'../../database_sql/dbconnect.php' ; 2 deep 
'../../../database_sql/dbconnect.php' ; 3 deep 

Ma question est de savoir comment puis-je faire référence à ce fichier de dossier racine sans savoir à quelle profondeur le chemin est-à-dire: ne pas utiliser ../../../ etc

+0

Et par * répertoire racine * vous voulez dire quoi? Comme le Linux '/ root' ou le répertoire racine commun de vos" autres scripts PHP "? –

Répondre

3

Deux solutions:

La première consiste à définir une constante dont la valeur est le répertoire racine:

// in a file in a your root directory: 
define('ROOT', dirname(__DIR__)); 

// in other files: 
include ROOT . '/file/relative/to/the/root.php'; 

La seconde est d'utiliser l'include_path:

// in a file in your root directory: 
set_include_path(dirname(__DIR__) . PATH_SEPARATOR . get_include_path()); 

// in other files: 
// PHP will search in include_path 
include 'file/relative/to/the/root.php'; 
3

Une solution de rechange (un peu plus de travail) est d'aller orienté objet et mettre en œuvre un autoloader.

+1

+1, l'autoloading est définitivement le chemin à parcourir – arnaud576875

Questions connexes