Heim  >  Artikel  >  Backend-Entwicklung  >  Lösung für das Problem des Einschließens des Seitenpfads in PHP

Lösung für das Problem des Einschließens des Seitenpfads in PHP

黄舟
黄舟Original
2017-06-25 10:56:472041Durchsuche


Ich habe keine Probleme festgestellt, als ich zum ersten Mal phps include zum Einschließen von Dateien verwendet habe.
langsam Später entdeckte ich ein sehr ernstes Problem, zum Beispiel:

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


wurde in 1.php durch include("../B/2.php") eingeführt ; Die 2.php-Datei
im B-Verzeichnis wird über include("A/1.php") in die 1.php-Datei
im A-Verzeichnis eingefügt. Beim Ausführen wird es Probleme geben. Gehen Sie zur Datei ../B/2.php und analysieren Sie sie sorgfältig Zu diesem Zeitpunkt wird
1.php in index.php kompiliert und ausgeführt, was bedeutet, dass sich 1.php wie index.php im Stammverzeichnis der Website befindet. Aber vergessen Sie dies nicht Fügen Sie einen Code-Umbruch in 1.php ein include("../B/2.php ");"../"Was bedeutet das? Im übergeordneten Verzeichnis befindet sich nun 1.php im Stammverzeichnis. Wenn Sie zu diesem Zeitpunkt eine Ebene nach oben gehen, wird 2.php nicht mehr gefunden, sodass das Problem hier auftritt.
Wie kann man das Problem lösen? Viele Leute werden an include("/B/2.php") denken. Das ist nicht gut, aber es ist auch nicht möglich, dass sich PHP von unserem
JSP unterscheidet
. In include Das in verwendete „/“ ist nicht das Stammverzeichnis der Website, wie wir es uns vorgestellt haben, sondern stellt das
aktuelle Verzeichnis dar, daher funktioniert es immer noch nicht.
Gibt es keine Lösung? Natürlich gibt es
Da relative Pfade nicht verwendet werden können, können wir stattdessen absolute Pfade verwenden. realpath("./") wird verwendet, um den absoluten Pfad des aktuellen Website-Stammverzeichnisses abzurufen, wie zum Beispiel: c:wampwww Website-Name
So können wir include("../B/2.php ändern "); in include(realpath("./")."B/2.php");

In diesem Fall kann ich unabhängig davon, in welchem ​​Verzeichnis sich die Seite befindet, darauf verweisen, und das tue ich auch nicht Sie müssen sich um das Pfadproblem keine Sorgen mehr machen!

Das obige ist der detaillierte Inhalt vonLösung für das Problem des Einschließens des Seitenpfads in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn