include(_once) mit absoluten pfaden

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • include(_once) mit absoluten pfaden

    Hallo!
    Ich hab ein kleines Problem mit den Verzeichnissen in denen include(_once) sucht. Hab leider im Forum noch keine Lösung dazu gefunden obwohl ich denke, dass es da eine einfache Lösung geben wird.
    Also: Hab folgende Verzeichnis- und Dateistruktur:
    [FONT=courier new]--- index.php
    --- folderX
    --- --- x.php
    --- folderA
    --- --- inc1.php
    --- --- folderB
    --- --- --- inc2.php
    [/FONT]
    [FONT=courier new]index.php[/FONT] bindet jetzt [FONT=courier new]inc2.php[/FONT] ein mit
    PHP-Code:
    include_once("folderA/folderB/inc2.php"); 
    [FONT=courier new]inc2.php[/FONT] wiederum bindet [FONT=courier new]inc1.php[/FONT] ein mit
    PHP-Code:
    include_once("folderA/inc1.php"); 
    [FONT=courier new]x.php[/FONT] bindet auch die [FONT=courier new]inc2.php[/FONT] ein mit
    PHP-Code:
    include_once("../folderA/folderB/inc2.php"); 
    Wird nun [FONT=courier new]index.php[/FONT] aufgerufen funktioniert das ganze prima. Wird aber direkt [FONT=courier new]folderX/x.php[/FONT] aufgerufen nicht, d.h. Warning: include_once(folderA/inc1.php) [function.include-once]: failed to open stream

    Ich versteh ja auch, wieso es zu der Fehlermeldung kommt, weil die [FONT=courier new]inc2.php[/FONT] dann in [FONT=courier new]folderX/folderA/[/FONT] gesucht wird, was es aber nicht gibt.
    Wie genau kann ich hier die Verzeichnisse in den includes angeben damit das funktioniert. z.b. immer relativ zur eingebundenen Datei und nicht zum aufgerufenen Skript.

    Ich hoff ich hab das verständlich formuliert und es kann mir jemand dabei helfen.
    Danke.

  • #2
    mach dich schlau über den Unterschied zwischen:

    folderA
    /folderA
    ./folderA
    ../folderA

    dann wirst du wissen, wo der Fehler ist

    Kommentar


    • #3
      und unabhängig davon würde ich empfehlen, statt relativen Pfaden einen absoluten zu nutzen und notfalls "on the fly" zu bauen:

      Aus ".." wird z.B. dirname(dirname(__FILE__))

      auf Windows-Plattformen funktionieren . und .. manchmal nicht ordentlich.

      Kommentar


      • #4
        Original geschrieben von asp2php
        mach dich schlau über den Unterschied zwischen:

        folderA
        /folderA
        ./folderA
        ../folderA

        dann wirst du wissen, wo der Fehler ist
        hi
        ich denk ich weiß was folderA, /folderA, ../folderA und ./folderA bedeuten. Wenn ich index.php aufruf werden ja auch ganz normal inc2.php und darin inc1.php eingebunden. Nur wenn ich folderX/x.php aufruf wird zuerst noch inc2.php eingebunden aber das include von inc1.php darin schlägt dann fehl. Vielleicht bin ich echt zu blöd, das jetzt zu sehen, ... hm

        Kommentar


        • #5
          Original geschrieben von pekka
          und unabhängig davon würde ich empfehlen, statt relativen Pfaden einen absoluten zu nutzen und notfalls "on the fly" zu bauen:
          ok, wenn ich es durchgängig mit absoluten pfaden mache, funktioniert es natürlich. Danke. Muss ich mir eben angewöhnen

          Kommentar


          • #6
            Original geschrieben von psygo
            hi
            ich denk ich weiß was folderA, /folderA, ../folderA und ./folderA bedeuten. Wenn ich index.php aufruf werden ja auch ganz normal inc2.php und darin inc1.php eingebunden. Nur wenn ich folderX/x.php aufruf wird zuerst noch inc2.php eingebunden aber das include von inc1.php darin schlägt dann fehl. Vielleicht bin ich echt zu blöd, das jetzt zu sehen, ... hm
            So wie du formulierst, begreifst du den Unterschied immer noch nicht. Versuch nochmals.

            Kommentar


            • #7
              Original geschrieben von pekka

              auf Windows-Plattformen funktionieren . und .. manchmal nicht ordentlich.
              Das wundert mich aber jetzt sehr!!!
              Unter welchen Umständen ist das so?
              Seit DOS 2.0 ist das meines Wissens nach vollkommen zuverlässig!
              Wir werden alle sterben

              Kommentar


              • #8
                Ich weiß es nicht mehr und finde es auch nicht auf die schnelle, auf jeden Fall machten relative include()s unter Windows Probleme. Vielleicht auch nur unter IIS, ich weiß nicht mehr genau...

                Kommentar

                Lädt...
                X