Maison  >  Article  >  développement back-end  >  Solution pour inclure le problème de chemin de page en PHP

Solution pour inclure le problème de chemin de page en PHP

黄舟
黄舟original
2017-06-25 10:56:472039parcourir


Je n'ai rencontré aucun problème lorsque j'ai commencé à utiliser php include pour inclure des fichiers ,
lentement Plus tard, j'ai découvert un problème très grave, par exemple :

<web>(网站根目录)
  ├<A>文件夹
  │ │
  │ └1.php
  ├<B>文件夹
  │ │
  │ └2.php
  └index.php


a été introduit dans 1.php via include("../B/2.php") ; Le fichier 2.php
dans le répertoire B est introduit dans le index.php via include("A/1.php"); pour introduire le fichier 1.php
dans le répertoire A. il y aura des problèmes lors de son exécution. Il est introuvable. Accédez au fichier ../B/2.php
et analysez-le attentivement. Le dans index.php fait référence au fichier 1.php dans le A. À l'heure actuelle, 1.php est compilé et exécuté dans index.php, ce qui équivaut à 1.php étant situé dans le répertoire racine du site Web comme index.php
Mais n'oubliez pas de le faire. inclure un saut de code dans 1.php include("../B/2.php ");
"../"Qu'est-ce que cela signifie ? Dans le répertoire de niveau supérieur, 1.php se trouve maintenant dans le répertoire racine. Si vous montez d'un niveau à ce moment-là, 2.php ne sera plus trouvé, le problème se pose donc ici.
Alors, comment le résoudre ? Beaucoup de gens penseront à include("/B/2.php") Ce n'est pas bon, mais ce n'est pas non plus possible
php est différent de notre
jsp.
. In include Le "/" utilisé dans n'est pas le répertoire racine du site comme nous l'imaginions, il représente le répertoire courant, donc ça ne fonctionne toujours pas. Il n'y a pas de solution ? Bien sûr, il existe

Puisque les chemins relatifs ne peuvent pas être utilisés, nous pouvons utiliser des chemins absolus à la place.

realpath("./") est utilisé pour obtenir le chemin absolu du répertoire racine actuel du site Web, tel que : c:wampwww nom du site Web

Nous pouvons donc modifier include("../B/2.php "); into include(realpath("./")."B/2.php");

Dans ce cas, quel que soit le niveau du répertoire dans lequel se trouve la page, je peux la référencer, et Je n'ai plus à me soucier du problème de chemin !

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