2017-03-09 4 views
1

Ich bin noch Neuling und mein Dokument Wurzel haben, wie unten für meine Subdomain:Wie verweist man in PHP auf einen Ordner oberhalb von Document Root?

/home/myusername/public_html/lab2 

und ich möchte eine Datei von myusername/private Ordner enthalten:

/home/myusername/private/config.php 

Was ich versucht wurde so etwas wie dies mit :

include($_SERVER['DOCUMENT_ROOT'] . '/../../private/File.php'); 

..aber das gibt mir dies:

/home/myusername/public_html/lab2/../../private/config.php

und wenn ich versuche dirname

include (dirname($_SERVER['DOCUMENT_ROOT'], 2) . "/private/config.php"); 

zu verwenden ... es gibt mir nur den letzten Teil:

/private/config.php

Edit: Ich sollte klarstellen, dass ich diese Datei von verschiedenen Verzeichnissen über die Website aufrufen möchte. Zum Beispiel: Ich bin in /home/myusername/public_html/lab2/academic/folder/test.php, und ich möchte in der Lage sein, diese spezifische file.php direkt anzurufen (d. H. Ohne manuell '../../' für jede Seite manuell anzupassen).

Antwort

0

Sie können direkt verwenden:

include('/home/myusername/private/config.php'); 
2

Verwenden realpath den vollständigen Pfad zu dem Stamm des Ordners, den Sie verwenden möchten, erhalten. Also, wenn Sie in lab2 sind, dann könnten Sie verwenden:

define("ROOT", realpath(__DIR__ . "/../"); 
define("ROOT_PRIVATE", realpath(ROOT . "/../private/"); 
include ROOT_PRIVATE . "/config.php"; 

Ich mag Ordner definieren, ich möglicherweise mehr als einmal verwenden würde. Wenn Sie nur diese eine Datei einschließen möchten, können Sie das tun (vorausgesetzt, Sie starten im Ordner lab2).

include realpath(__DIR__ . "/../../private") . "/config.php"; 
+0

Vielen Dank für Ihre Antwort. Bitte sehen Sie meine Bearbeitung: Ich sollte klarstellen, dass ich diese Datei aus verschiedenen Verzeichnissen über die Website aufrufen möchte. Zum Beispiel: Ich bin in /home/myusername/public_html/lab2/academic/folder/test.php, und ich möchte diese spezifische Datei.php direkt aufrufen können (dh ohne manuell '../../' Teil für jede Seite). –

+0

Dann sollten Sie mein erstes Beispiel verwenden. In Ihrer Index- oder Bootstrap-Datei definieren Sie ROOT, dann können Sie 'include ROOT_PRIVATE verwenden. "/config.php" 'von überall. Wenn Sie die von Ihnen gewählte Antwort als richtig verwenden, müssen Sie sie ** immer ändern, wenn Sie Server verschieben. – Styphon

0

Bitte testen Sie unten Code:

echo realpath($_SERVER['DOCUMENT_ROOT'] . '/../../private/File.php'); 
Verwandte Themen