Ankündigung

Einklappen
Keine Ankündigung bisher.

problem mit relativen includes in php

Einklappen

Neue Werbung 2019

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

  • problem mit relativen includes in php

    Mahlzeit,

    situation: ich hab diverse php-files in einem verzeichniss, darunter eine "toolbox.php" und eine "config.php"
    die config.php wird von der toolbox included
    außerdem gibt es ein unterverzeichnis "tmpl" in dem halt template-files sind
    einige der funktionen in der toolbox greifen darauf zu.

    problem: jetzt will ich aber noch einen unterordner "admin" erstellen in dem dann php files zur administration sind, diese sollen ebenfalls die toolbox nutzen, welche dann logischerweise ein ordner höher liegt.

    das problem ist nur, das er dann logischerweise die dateien die von der toolbox included werden nicht findet.

    wie kann ich es realisieren, das ich da die toolbox auch nutzen kann ohne alles in den unterordner kopieren zu müssen (was ja totaler schwachsinn wäre) ?


    gruß
    clm[k1]


  • #2
    wie wäre es wenn du eine bessere dateistruktur wählst und uns mal deine d erzeitige darstellst.
    z.B. so .
    Code:
    index.php
          |
          ordner1
                 |
                  datei1.php
                  datei2.php
          |
          ordner2
                 |
                  datei3.php
                  datei4.ph
    danke ..

    [/code]
    privater Blog

    Kommentar


    • #3
      ok, dachte zwar das das aus der beschreibung hervor geht, aber bitte.
      derzeitige datei-struktur:

      Code:
      config.php
      index.php
      toolbox.php
      *restliche dateien*
                     |
                     ordner "tmpl"
                             |
                             template.htm
                             noch ein template
                     |
                     ordner "admin"
                             |
                             adminindex.php
      so far
      clm[k1]

      Kommentar


      • #4
        1. Du könntest die Pfade nicht realtiv sondern absolut angeben.
        2. Du generierst eine einheitliche Pfadstruktur wie zum Beispiel:

        ----ROOT
        -----------Index.php
        ----Allgemeine Dateien
        -----------toolbox.php
        -----------config.php
        -----------Templates
        -----------------------X1.tpl
        -----------------------X2.tpl
        ----Admin
        ----Deutsch
        ----Englisch

        So kannst sind die Gesetzten Pfade aus allen weiteren Ordnern wie Admin, Deutsch, Englisch immer gleich, wenn man es realtiv betrachtet:

        ....hoffe das hilft dir etwas weiter....

        Kommentar


        • #5
          Auf /-Ebene:


          Code:
          $inc =
              ini_get('include_path', $inc).
              PATH_SEPARATOR.dirname(__FILE__);
          
          ini_set ('include_path', $inc);

          Auf /admin/-Ebene:
          Code:
          $inc =
              ini_get('include_path', $inc).
              PATH_SEPARATOR.dirname(__FILE__).DIRECTORY_SEPARATOR.'..';
          
          ini_set ('include_path', $inc);
          Auf diese weise ist
          Code:
          require_once 'toolbox.php';
          IMMER gültig

          ABER .. innerhalb von Admin ist es ebenfall angebracht (aber nicht nötig)
          Code:
          require_once('admin/foo.php');
          zu verwenden.

          Kommentar


          • #6
            danke für die zahlreichen antworten!
            absolute pfade mit "dirname(__FILE__)" hat geholfen.

            @Guradia: deine idee alleine hätte auch geholfen, wenn ich nur dateien includen würde, aber die templates werden mit fopen() angefordert.


            gruß
            clm[k1]

            Kommentar


            • #7
              Zitat von clm[k1
              ]
              @Guradia: deine idee alleine hätte auch geholfen, wenn ich nur dateien includen würde, aber die templates werden mit fopen() angefordert.
              Aus dem Manual zu fopen()

              Sie können den optionalen Parameter use_include_path auf '1' oder TRUE setzten, wenn Sie die Datei auch im include_path suchen möchten.

              Kommentar

              Lädt...
              X