Comment utiliser PHP comprend à travers de multiples répertoires/sous-répertoires avec des chemins relatifs
Je vais avoir de la difficulté avec les chemins d'accès dans un système cms, je suis d'essayer de construire, j'ai essentiellement eu un dossier avec mes header.php et footer.php les fichiers à l'intérieur.
Ceux-ci sont inclus dans index.php et beau travail. Mais quand j'ai essayer d'utiliser la même inclut dans un fichier dans mon admin sous-répertoire, les images et les CSS sont brisés, bien sûr, parce que le chemin d'accès relatif est maintenant mal.
Donc ma question est, comment puis-je surmonter cela?
Après la lecture de certaines des autres questions ici et diverses autres sources, je pense que les chemins absolus sont la voie à suivre, mais j'ai toujours utilisé des chemins relatifs, de sorte que les différents concepts de l'utilisation de fichiers de configuration pour spécifier un chemin d'accès absolu sont me confondre.
J'ai l'habitude de gérer des choses à travailler pour moi-même, mais il a été une longue journée et Im perplexe!
Vous devez vous connecter pour publier un commentaire.
j'ai en général un fichier nommé config dans ma racine de l'application et j'définir une constante pour le chemin d'accès de base et quelques autres:
et j'inclus mes fichiers comme
de cette façon, je peux placer mes aplication dans n'importe quel répertoire, plus je peux déplacer des fichiers sans trop de soucis.
aussi en utilisant le chemin d'accès complet fait le plus rapidement
Je préfèrent définir les variables d'environnement (Apache, à l'aide de .htaccess ou le .conf). De cette façon, vous pouvez déplacer tous vos fichiers librement n'importe où dans la racine de votre site et avoir accès à ces variables.
Vous pouvez également utiliser la variable nommée 'environ' mentionné dans la ci-dessus .htaccess extrait de code pour inclure un serveur de fichier spécifique en tant que fichier de config dans l'ensemble de vos scripts et de définir les différentes variables.
Profiter de votre liberté!
ou...
include($_SERVER['DOCUMENT_ROOT'] .'/includes/header.php');
Absolue et Relative des chemins en PHP sont un peu fragiles parce qu'ils ne dépendent pas seulement sur le répertoire courant du fichier inclu, mais aussi le répertoire de travail courant.
Si vous avez besoin d'un deux-une partie de la solution.
Tout d'abord, vous avez besoin d'un redirecteur. En gros, c'est un fichier include qui sert comme un unique point de contact pour toutes les autres pages. Son travail consiste à aller d'inclure le reste de votre infrastructure. Toutes vos pages appeler cette redirecteur et uniquement ce redirecteur (mais vous pouvez la chaîne d'eux).
Ce redirecteur maintenant ne
Cela vous permet de modifier votre infrastructure du fichier à inclure, ou de l'endroit et tout ce que vous avez à mettre à jour un fichier. Le
dirname()
appel résout tous les relatives et absolues des problèmes et il a l'oeil pour l'étape suivante par rapport à lui-même. Et par définition, cela ne change que lorsque vous en changez, de sorte qu'il sera toujours.La deuxième partie est une coutume englobant de sorte que vous pouvez appeler contenu par nom avec une fonction et il va chercher le bon fichier. Enterrer dans votre infrastructure d'annuaire est là que va. Elle devient alors une "boîte noire" que les pages en dehors de cette région, appelez sans le savoir et sans avoir besoin de savoir comment il fonctionne, ou bien où il est. Cela élimine le besoin pour le chemin des constantes d'inclure des fragments de page parce que vous avez un endroit fait pour vous.
J'ai eu ce même problème et a posté cette question dans ce lien dans la. L'URL est : Problème avec PHP include avec chemin d'accès global.
Tout en travaillant sur les solutions données par les gens, et de regarder les différents threads (y compris celui - ci dont j'avais cité dans mon solution à la section en bas de mon post), j'ai eu une sorte!!! J'avais posté la solution. Il peut aider quelqu'un qui est confronté à un problème similaire.