Maison >développement back-end >tutoriel php >Pourquoi mon inclusion PHP échoue-t-elle malgré un chemin d'inclusion apparemment correct ?
Résolution des problèmes de chemin pour PHP Include
Dans le scénario fourni, un script PHP dans le chemin /root/update/test.php tente pour inclure le fichier connect.php dans /root/connect.php. Bien que l'inclusion dans test.php réussisse, l'inclusion suivante dans connect.php ne parvient pas à localiser le fichier config.php nécessaire.
La confusion vient du fait que le chemin d'inclusion dans test.php est défini sur . :/root, suggérant que connect.php devrait rechercher config.php dans le répertoire de travail actuel et dans le répertoire /root. Cependant, le message d'erreur indique que connect.php tente en fait d'inclure le fichier depuis son propre répertoire, où config.php n'existe pas.
Pour résoudre ce problème, vous pouvez utiliser des approches alternatives pour déterminer les chemin du fichier.
Une solution consiste à utiliser la constante magique PHP __DIR__, qui représente le répertoire du fichier actuel. En concaténant dirname(__DIR__) avec le nom de fichier souhaité, on peut remonter dans la structure des répertoires et accéder au fichier requis. Dans ce cas, le code modifié dans test.php serait :
include(dirname(__DIR__).'/config.php');
Une autre méthode consiste à définir un chemin racine en utilisant dirname(__DIR__) et à le stocker dans une variable constante. Ce chemin racine peut ensuite être utilisé pour construire le chemin d’inclusion nécessaire. Voici à quoi cela ressemblerait dans test.php :
define('ROOT_PATH', dirname(__DIR__) . '/'); include(ROOT_PATH.'config.php');
En employant ces approches révisées, le script PHP sera en mesure d'inclure avec succès les fichiers nécessaires, quelle que soit la structure de fichiers ou l'environnement de déploiement dans lequel il fonctionne.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!