Sil: include / absolute Pfade

Ich hab ein kleines Problem mit dem include() Befehl. Bis anhin hatte ich die Pfadangaben relativ zum Stammverzeichnis angegeben (geht nicht anders). Nun muss ich das Skript aber auf verschiedene Server kopieren die unterschiedliche include Pfade haben, sprich: include('/blah/blub.php') funktioniert nicht mehr. Kann ich irgendwie relativ zum Stammverzeichnis includen ohne jedesmal: include($_SERVER['DOCUMENT_ROOT'].'/blah/blub.php') schreiben zu müssen oder ist das die einzige Lösung? (den include Pfad in der php.ini kann/will ich nicht ändern)

Danke mal im voraus, Sil

  1. Hallo erstmal!

    Kann ich irgendwie relativ zum Stammverzeichnis includen ohne jedesmal: include($_SERVER['DOCUMENT_ROOT'].'/blah/blub.php') schreiben zu müssen oder ist das die einzige Lösung?

    Die Variable $_SERVER['DOCUMENT_ROOT'] zu nutzen ist IMHO die einfachst, wenngleich auch nicht so ohne weiteres sicherste Methode. $_SERVER['DOCUMENT_ROOT'] muß auf einem System nicht zwingend vorhanden sein (IIS ist ein Beispiel eines Querschlägers). $_SERVER['DOCUMENT_ROOT'] kann auch auf '/' enden ;).

    Nichtsdestotrotz steht es Dir natürlich frei relativ zum aufgerufenen Script durch basename([link:http://de3.php.net/manual/de/language.constants.predefined.php@title=__FILE__]) zu referenzieren.

    Gruß aus Berlin!
    eddi

    1. Scheint so als würde ich bei $_SERVER['DOCUMENT_ROOT'] bleiben.

      An dieser Stelle: Danke an alle für eure Antworten! :)

  2. Wieso nicht:

    include('blah/blub.php')

    ?

    angenommen die includende Seite liegt im selben Verz. wie blah

    1. Wieso nicht: include('blah/blub.php') ?
      angenommen die includende Seite liegt im selben Verz. wie blah

      tut sie eben nicht :-/
      Der include Befehl wird quer über den ganzen Verzeichnisbaum von irgendwoher ausgeführt.
      Deshalb wäre relativ zum Stammverzeichnis die einfachste Lösung.

  3. hi,

    Nun muss ich das Skript aber auf verschiedene Server kopieren die unterschiedliche include Pfade haben

    Neben eddis Hinweisen könntest du natürlich auch den include_path in der Konfiguration der anderen Server anpassen.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Neben eddis Hinweisen könntest du natürlich auch den include_path in der Konfiguration der anderen Server anpassen.

      Könnte ich, aber eigentlich möchte ich es vermeiden an der Serverkofiguration herumzufummeln wenns irgendwie anderst machbar ist.

      1. hi,

        Neben eddis Hinweisen könntest du natürlich auch den include_path in der Konfiguration der anderen Server anpassen.

        Könnte ich, aber eigentlich möchte ich es vermeiden an der Serverkofiguration herumzufummeln wenns irgendwie anderst machbar ist.

        Die Option ist auch zur Laufzeit einstellbar.
        Und dabei könntest du sie ja dann mit anderen Vorschlägen, wie bspw. __FILE__ des Hauptscriptes zu nutzen, kombinieren.

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }