pfad der audführenden datei die includet wurde auslesen

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

  • pfad der audführenden datei die includet wurde auslesen

    hallo...

    ist es möglich den pfad der ausführenden datei auszulesen die per include eingebunden wurde?

    zB am root liegt eine index.php. in dieser steht die zeile include ($_SERVER['DOCUMENT_ROOT'] . '/scripts/download_cat_2/load.php');

    wie kann ich nun in der datei load.php ermitteln in welchem pfad sie leigt?

    besten dank
    tom

  • #2
    $_SERVER['SCRIPT_FILENAME'] oder $_SERVER['SCRIPT_NAME'] anschauen

    Kommentar


    • #3
      Leider wird bei diesen varianten nur index.php ausgegebn. also di datei in die load.php inculdet wird.

      Kommentar


      • #4
        Original geschrieben von asp2php
        $_SERVER['SCRIPT_FILENAME'] oder $_SERVER['SCRIPT_NAME'] anschauen
        ne, er will ja den pfad der include-datei und nicht des hauptscriptes.

        dirname(__FILE__) sollte dabei weiterhelfen.

        Kommentar


        • #5
          achso, ich hab' nur drüber geflogen , naja, wenn sie includiert wird, dann ist sie quasi nicht mehr da wo sie war. Aber warum willst du das by runtime wissen? Einen Blick in Code weisst du schon wo sie ist. Geht es um die Gestaltung eigene Fehlermeldung? Wenn ja dann beschäftige dich mit PHP-Exception, IMHO wirft PHP bei Fehler sogar das raus, was du suchst. Also irgend ein Fehler in der Datei erzeugen und anschauen, was PHP rauswirft; error_reporting(E_ALL); nicht vergessen.

          Kommentar


          • #6
            dirname(__FILE__) war perfekt

            noch ne frage:
            war funktioniert is_file jetzt nicht mit dem pfad ned mit dirname(__FILE__) gibt? es is ja keine externe_datei oder?

            Kommentar


            • #7
              Original geschrieben von merlin_76
              es is ja keine externe_datei oder?
              es ist ein pfad, wolltest du doch oder? ansonsten benutze nur __FILE__

              und ein verzeichnis kannst du mit is_dir() überprüfen.

              Kommentar


              • #8
                nana, die datei in dem verzeichniss hatte ich schon noch angehängt. es schaut meiner meinung nach nur so aus, als ob is_file diese art von pfadangabe als "externe datei" deklariert und deswegen nicht funktioniert. stimmt das?

                Kommentar


                • #9
                  Original geschrieben von merlin_76
                  nana, die datei in dem verzeichniss hatte ich schon noch angehängt.
                  vermutlich hast du den dateinamen falsch angehängt - slash bzw backslash bedacht?

                  ansonsten, was meinst du mit "externer datei"?

                  Kommentar


                  • #10
                    wenn ich in der docu auf php.net nachlese steht, dass is_file nicht mit externen datein funktioniert. und nachdem ich slshes und dateinamen 3 mal kontrollier thabe vermute ich in diese richtung.

                    Kommentar


                    • #11
                      Original geschrieben von merlin_76
                      wenn ich in der docu auf php.net nachlese steht, dass is_file nicht mit externen datein funktioniert. und nachdem ich slshes und dateinamen 3 mal kontrollier thabe vermute ich in diese richtung.
                      Wenn du so meinst:

                      is_file($_SERVER['DOCUMENT_ROOT'] . '/scripts/download_cat_2/load.php');

                      dann ist nix mit externen, extern ist sowas gemeint:

                      is_file('http://...');

                      und das geht bei is_file nicht

                      Kommentar


                      • #12
                        Original geschrieben von merlin_76
                        wenn ich in der docu auf php.net nachlese steht, dass is_file nicht mit externen datein funktioniert.
                        achso, zugriff per http z.b.
                        kann aber nicht sein, da __FILE__ den pfad innerhalb des dateisystems des servers liefert.

                        was hast du eigentlich vor? den includepfad ermitteln und dann überprüfen, ob sich darin eine andere datei befindet?


                        und nachdem ich slshes und dateinamen 3 mal kontrollier thabe vermute ich in diese richtung.
                        kannst du mal den entsprechenden code posten, ich denke immer noch, hier liegt der fehler.

                        Kommentar

                        Lädt...
                        X