PHP Einbinden von Dateien

baserider

Well-known member
ID: 174417
L
10 März 2007
682
23
Hi,

ich habe hier eine Seite, wo die Dateien in verschiedenen Verzeichnissen liegen.
Einige Dateien werden eingebunden, daher habe ich in einer global.inc.php folgendes stehen:

PHP:
define('INCLUDES',dirname(__FILE__).'/inc');

somit kann ich in allen Dateien diesen Pfad nutzen, egal wo die jeweilge datei liegt. Ein Problem ist, das man jedoch die global.inc.php in jeder Datei anders einbinden muss.

- root
- verzeichnis
-- datei.php --> include('../global.inc.php'); include(INCLUDES.'/header.inc.php')
- global.inc.php
- nocheinedatei.php --> include('global.inc.php');

Kann man den Aufruf der global.inc.php noch etwas verbessern? So muss man ja immer den relativen Pfad anpassen.
 
ah ok, also müsste ich in jeder einzelnen Datei
PHP:
include($_SERVER['DOCUMENT_ROOT'].'/global.inc.php');

angeben. Leider ist die Struktur so angelegt, das es nicht nur eine index.php gibt, wo alle Aufrufe drauflaufen, sondern eben viele Dateien. Ich dachte es gibt nochwas mit weniger Schreibarbeit :)oder ne professionellere Lösung.
 
hi, ok...naja das kann ich leider nicht so ohne weiteres umbauen, dann werde ich die Servervariable für den absoluten Pfad nutzen.
 
Achso, iene Frage noch:

Warum funktioniert eigentlich der Aufruf nicht?

PHP:
include('/datei.php');

durch den führenden Slash sollte doch eigentlich alles ab dem Root aufgerufen werden, egal wo ich die Datei einbinde?
 
Achso, iene Frage noch:

Warum funktioniert eigentlich der Aufruf nicht?

PHP:
include('/datei.php');

durch den führenden Slash sollte doch eigentlich alles ab dem Root aufgerufen werden, egal wo ich die Datei einbinde?

Ja, das geht vom Root-Verzeichnis aus. Das ist aber nicht zwangsweise (eigentlich nie ;) ) das Home-Verzeichnis deines vhosts. Es ist das Root-Verzeichnis deines Betriebssystems und da willst du bestimmt nicht hin.
 
Nachtrag:

Das Dateisystem in Linux ist mit dem "/" als Root gesetzt.
PHP übernimmt den Ansatz nur und deshalb ist ein simples "/" vorn angestellt nicht Dein WEBROOT Verzeichnis.

Ein "/" vorn an, sowie das komplette ausschreiben eines Pfades mit Datei, nennt man absoluten Pfad.

Ein simpler "." davor wirkt so, das man es relativ nennen darf.

Nachtrag Ende !
 
Wie wärs damit das include-Verzeichnis per php.ini in den include_path mit aufzunehmen, dann brauchst du deine Konstante auch nicht mehr.

Viele Grüße aus Berlin

leller