[PHP] Include unabhängig von Verzeichnisebene

  • Ersteller Ersteller Mr. Snoot
  • Erstellt am Erstellt am
M

Mr. Snoot

Gast
Hio,

mal wieder ein Problem mit dem Einbinden einer Datei in verschiedene andere, die in unterschiedlichen Verzeichnisebenen liegen.

Ich hab die Datei head.php für den Kopf der Seite und den Ordner bilder im Rootverzeichnis. Die head.php soll jetzt bspw. in die zwei Dateien:

/ordner1/index.php

und

/ordner2/unterordner/index2.php

eingebunden werden.

Wenn ich die Datei head.php in die index1.php einbinde, müssen die Pfade in der head.php für den Bilderordner ja ../bilder/xxx.jpg lauten.
Binde ich die head.php aber in die index2.php ein, müssten die Bilderpfade ja ../../bilder/xxx.jpg lauten.

Ich kann doch aber die head.php auch so einbinden, dass die Pfade zu den Bildern immer vom Rootverzeichnis ausgehen, oder?

Dachte, das müsste so gehen
PHP:
<?php
		include $_SERVER['DOCUMENT_ROOT'].'/head.php';
?>
Aber dann wird die head.php in keiner der zwei Seiten angezeigt. Es kommt aber auch keine Fehlermeldung o.ä.

Jemand ne Idee?
 
Mach Dir doch ne Variable wo der "normale" Document root ist:

$pfad = "/srv/www/htdocs/html/superseite";
$urlpfad = "http://www.meineseite.de/superseite/";

Dateien includierst Du dann nicht mehr über DOCUMENT_ROOT, sondern
über Deine $pfad Variable..

und Die bilder baust Du dann mit

echo "<img src=\"".$urlpfad."/bilder/bild.jpg\">";

ein. Dann stimmt auch der Pfad für die Bilder immer.
 
Also du hast denke ich 3 Möglichkeiten:

1.) Überarbeite deine Verzeichnisstruktur

2.) Du gibt eine komplette URL zum includieren an! z.B. "include(http://my.tld/mydoc.php);"

3.) Du gibt den kompletten Pfad auf dem Webserver an! z.B. "include(/home/www/web1/myhp/mydoc.php);"
 
syntec schrieb:
Mach Dir doch ne Variable wo der "normale" Document root ist: ...
Ah, wunderbar. Klappt einwandfrei. Danke :)
Meolus schrieb:
1.) Überarbeite deine Verzeichnisstruktur
Wird nur leider etwas unübersichtlich, wenn alle Dateien im gleichen Ordner liegen :(
2.) Du gibt eine komplette URL zum includieren an! z.B. "include(http://my.tld/mydoc.php);"

3.) Du gibt den kompletten Pfad auf dem Webserver an! z.B. "include(/home/www/web1/myhp/mydoc.php);"
Dann ändert sich aber an den Pfaden nichts. Das Bildverzeichnis müsste dann wieder an die jeweilige index(2).php angepasst werden.
 
Gauder schrieb:
Wird nur leider etwas unübersichtlich, wenn alle Dateien im gleichen Ordner liegen :(

Also bei mir klappt das gut, da alle dateien GLECH TIEF im Verzeichnisbaum liegen! Und wenn das nicht das erste verzeichnis, sondern das 2. oder 3. Unterverzeichnis jeweils ist, dann passt das!


Und meine 2 und 3 beschreiben die selbe Lösung wie syntec schrieb... er war nur nen paar Sekunden schneller...
 
Das gleiche hab ich auch gedacht, eben ein paar Sekunden schneller :D
 
Zurück
Oben