PHP include absoluten Pfad
Ich habe eine variable, die auf meiner Website genannt $basePath gesetzt, als:
$basePath = '/Systems/dgw/';
Ich benutze es auf alle meine css, js und Bilder-tags so (verkürzt, für bessere Sicht):
<link href="<?php echo $basePath; ?>include/assets/css/bootstrap.min.css">
Habe ich kein problem mit diese Sie umfasst und Sie funktionieren überall-Datei und in welchem Ordner ich bin.
Ich eine bestimmte Seite enthalten die folgende Zeile:
<img src="<?php echo $basePath; ?>images/new_logo.png" alt="logo"/>
Und das Bild zeigt nur feine. Die Linie, nachdem es Staaten:
<?php include($basePath.'include/assets/common/topMessages.php');?>
Aber die gehören nicht passiert. Wenn ich versuche es wie folgt:
<?php include('../../include/assets/common/topMessages.php');?>
Es funktioniert.
Jemand hat eine Idee, was falsch sein könnte?
InformationsquelleAutor der Frage digicom | 2014-04-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie keine php-Dateien relativ zu Ihrem webroot, Weise, Ursache, wenn Sie verwenden den Schrägstrich als erstes Zeichen, der Bezug wird noch viel tiefer gehen, als nur das document root. Also, statt mit den basepath, Sie könnte so etwas tun :
InformationsquelleAutor der Antwort Laurent S.
Wenn Ihr server nicht Auffüllen der "document_root" ist, müssen Sie möglicherweise diese
Verwende ich diese Codezeile. Es geht zurück auf die "Spitze" der Website Baum, geht dann auf die gewünschte Datei.
Zum Beispiel, sagen wir, ich habe diese Datei Baum:
domain.com/aaa/index.php
domain.com/bbb/ccc/ddd/index.php
domain.com/_resources/functions.php
Ich kann die functions.php -Datei aus, wo immer ich bin, nur durch kopieren und einfügen
Wenn Sie brauchen, um diesen code zu verwenden, viele Male, können Sie eine Funktion erstellen, die gibt die "str_repeat('../',(substr_count(getenv('SCRIPT_URL'),'/')-1))" Teil. Dann legen Sie einfach diese Funktion in der ersten Datei, die Sie enthalten. Ich habe ein "initialize.php" Datei, die habe ich auch ganz oben auf jeder php Seite, und die diese Funktion enthält. Das nächste mal muss ich include-Dateien, die ich in der Tat nur mit der Funktion (mit Namen "path_back"):
InformationsquelleAutor der Antwort
Können Sie eine
include_path = ".:/home/myuser/mysite.com/"
zu Ihremphp.ini
oder Sie können etwas hinzufügen, wie Sie dies in Ihrem script, bevor Sie dasinclude
oderrequire
:Die erste Arbeit für alle Laufenden Skripte in Ihre website.
Die zweite option funktioniert nur für das Skript, das hat die
setincludepath
auf dem code, für den rest der Anwendung wird es nicht funktionieren, es sei denn, Sie haben ein Objekt, rufen Sie in jedem Skript, fügen Sie diesetincludepath
.InformationsquelleAutor der Antwort raphvon