Maison >développement back-end >tutoriel php >Pourquoi mon inclusion PHP échoue-t-elle malgré un chemin d'inclusion apparemment correct ?

Pourquoi mon inclusion PHP échoue-t-elle malgré un chemin d'inclusion apparemment correct ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-06 07:38:10884parcourir

Why Does My PHP Include Fail Despite a Seemingly Correct Include Path?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn