Heim >Backend-Entwicklung >PHP-Tutorial >Problem mit dem relativen PHP-Pfad
Beim Anfordern oder Einbinden einer Datei in PHP werden meist relative Pfade verwendet, was Kopfschmerzen bereitet.
Zum Beispiel:
d33960d65abb73911b33db45e19cd446(Website-Stammverzeichnis)
├72d4ced2cc960a6bc2541984146fdaaaOrdner
│ │
│ └1.php
├9368c5823948a595f9974a5e2b3bd3f1Ordner
│ │
│ └2.php
└ Index .php
Problem: In 1.php wird include („../B/2.php“) verwendet, um die 2.php-Datei im B-Verzeichnis einzuführen; index. In PHP wird include („A/1.php“) verwendet, um die 1.php-Datei in das A-Verzeichnis einzufügen.
führt natürlich zu Problemen beim Ausführen, und die ../B/ 2.php-Datei kann nicht gefunden werden.
Denken Sie an ein Prinzip: Alle Include-Anweisungen werden schließlich basierend auf dem Include-Dateipfad in Include-Pfade umgewandelt. Es wird empfohlen, einen Basispfad als Referenz für alle Pfade zu verwenden, z. B. __FILE__ oder $_SERVER['DOCUMENT_ROOT ' ]
__
FILE__: (geeignet für verschiedene Situationen)Konfigurieren Sie das Site-Stammverzeichnis in der Konfigurationsdatei
define( "WEB_ROOT ", dirname(__FILE__ ) ) ;Die Konfigurationsdatei wird im Stammverzeichnis der Website abgelegt.
Andere Dateien enthalten Konfigurationsdateien. Suchen Sie diese einfach nach WEB_ROOT.
require_once( WEB_ROOT . "/a.php " );
$_SERVER['DOCUMENT_ROOT'], geeignet für Situationen mit nicht virtuellen Hosts (Alias)
<?php if (!defined("WETSITE_BASE_DIR")) define("WETSITE_BASE_DIR", $_SERVER['DOCUMENT_ROOT'].'/Clare/'); require_once(WETSITE_BASE_DIR.'includes/global.inc.php'); ?>