+ Antworten
Ergebnis 1 bis 16 von 16

Thema: Verzeichnis über document_root herausfinden möglich?

  1. #1
    Ben
    Ben ist offline
    Erfahrener Benutzer Avatar von Ben
    Registriert seit
    02.12.2004
    Ort
    Koblenz
    Beiträge
    4.815

    Standard Verzeichnis über document_root herausfinden möglich?

    Hallo,
    ich habe eine Anwendung mit folgender Struktur (grob)
    Code:
    root
     |- lib
          |- ...
     |- app
          |- ...
     |- public
          |- ...
    
    Der document root liegt auf dem Verzeichnis "public", so dass der Rest nicht via HTTP aufgerufen werden kann.

    Nun ist aber ja der Wert von $_SERVER['DOCUMENT_ROOT'] (jou, $_SERVER generell erstmal nicht sicher, aber in den Kommentaren von hier steht
    1. $_SERVER['DOCUMENT_ROOT'] - this is taken straight from the private DocumentRoot httpd.conf configuration variable (so long as someone like mod_perl hasn't altered it before PHP took a peek at it).
    )
    ja logischerweise auch auf das public-Verzeichnis gerichtet.

    Meine Frage ist nun .. gibt es eine Möglichkeit ohne String-Funktionen-Gewurschtel an den Pfad über dem public-Verzeichnis zu kommen? Ich will auf relative Pfadangaben verzichten.
    Glaube ja eher nicht dran, aber da ich mir nicht sicher bin frage ich einfach mal.

    Danke für die Antworten.
    Grüße, Ben.

  2. #2
    Erfahrener Benutzer Avatar von Chr!s
    Registriert seit
    04.09.2005
    Ort
    Nürnberg
    Beiträge
    561

    Standard

    Hast du schonmal versucht, vllt mit realpath() zu arbeiten, z.B. sowas wie
    PHP-Code:
    <?php
    realpath
    ($_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR '..');
    ?>
    ?

  3. #3
    Erfahrener Benutzer
    Registriert seit
    04.01.2006
    Beiträge
    964

    Standard

    Warum auf relative Angaben verzichten? Die Anforderung ist doch: Ich brauche das Verzeichnis über public. Da wird ja (neben den öffentlichen Bildern, Stylesheets etc.) wohl nur der FrontController oder eine index.php drinnen liegen, die an einen FrontController in app oder so weiterleitet.

    Aber klar, letztlich funktioniert beides:
    PHP-Code:
    realpath($_SERVER['DOCUMENT_ROOT'] . '/..');
    realpath(dirname(__FILE__) . '/..'); 
    ...übrigens auch ohne realpath().

    Basti

  4. #4
    Ben
    Ben ist offline
    Erfahrener Benutzer Avatar von Ben
    Registriert seit
    02.12.2004
    Ort
    Koblenz
    Beiträge
    4.815

    Standard

    Ich hatte noch keine Chance das auszutesten (mache ich später noch ), aber es ist so, dass ich den include_path setzen möchte und auch muss. Und dafür reicht mir ja der relative Pfad nicht, sondern ich muss ja sowas hier machen

    root/lib/mylib/

    oder so .. da bringt mir eine relative Pfadangabe nichts, oder?

  5. #5
    Mensch Avatar von WarrenFaith
    Registriert seit
    17.08.2005
    Ort
    Berlin
    Beiträge
    1.675

    Standard

    es geht auch public/../app, damit landeste dann im root/app
    Rapid Android Development - droidnova.com
    SimCity für Android (bald Open Source) - Saint Feint City

  6. #6
    Ben
    Ben ist offline
    Erfahrener Benutzer Avatar von Ben
    Registriert seit
    02.12.2004
    Ort
    Koblenz
    Beiträge
    4.815

    Standard

    Ui, das wusste ich nicht. Werde ich ebenso mal austesten. Das wäre ja dann eigentlich recht fein, wenn auch in meinen Augen etwas "unsauber" (passt nicht so ganz das Wort, aber egal).

    Danke für die Tipps.

  7. #7
    Erfahrener Benutzer
    Registriert seit
    04.01.2006
    Beiträge
    964

    Standard

    Zitat Zitat von Ben Beitrag anzeigen
    Das wäre ja dann eigentlich recht fein, wenn auch in meinen Augen etwas "unsauber" (passt nicht so ganz das Wort, aber egal).

    Dann eben einmal durch realpath() und der Pfad ist "sauber". *g

    Basti

  8. #8
    Ben
    Ben ist offline
    Erfahrener Benutzer Avatar von Ben
    Registriert seit
    02.12.2004
    Ort
    Koblenz
    Beiträge
    4.815

    Standard

    Ah, .. klar. Stand gerade auf dem .. na .. dem Schlauch halt.

  9. #9
    Ben
    Ben ist offline
    Erfahrener Benutzer Avatar von Ben
    Registriert seit
    02.12.2004
    Ort
    Koblenz
    Beiträge
    4.815

    Standard

    Habe das nun folgendermaßen gemacht.
    PHP-Code:
    $includePath  get_include_path()
                  . 
    PATH_SEPARATOR realpath($_SERVER['DOCUMENT_ROOT'] . '../lib/zf')
                  . 
    PATH_SEPARATOR realpath($_SERVER['DOCUMENT_ROOT'] . '../lib/dg')
                  . 
    PATH_SEPARATOR realpath($_SERVER['DOCUMENT_ROOT'] . '../app/controllers/')   
                  . 
    PATH_SEPARATOR realpath($_SERVER['DOCUMENT_ROOT'] . '../app/models');
                                           
    set_include_path($includePath);
    unset(
    $includePath); 
    Ein realpath() auf den gesamten Inhalt von $includePath ergibt ja ein false.

    War das von Eurer Seite aus so gemeint? Will mich nur noch mal vergewissern, dass ich es wirklich richtig verstanden habe.

    Grüße, Ben.

  10. #10
    Erfahrener Benutzer Avatar von dejan_spasic
    Registriert seit
    05.01.2006
    Ort
    Düsseldorf
    Beiträge
    175

    Standard

    Zitat Zitat von Ben Beitrag anzeigen
    War das von Eurer Seite aus so gemeint? Will mich nur noch mal vergewissern, dass ich es wirklich richtig verstanden habe.

    Grüße, Ben.
    Bis auf, dass das Verzeichnis-Sperator nach der $_SERVER-Variable fehlt,
    denke ich mal das es so gemeint war :)

    Ich würde dir empfehlen, dass "ROOT"-Verezeichnis nur einmal zu ermittlen
    und den Wert in eine Konstante zu zuweisen, denn soweit ich noch weiss
    kostet realpath schon einiges an Preformence.

    PHP-Code:
    define(
        
    'MY_APP_ROOT_DIR'
        
    realpath($_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR '..')
    );
                                            
    set_include_path(
        
    get_include_path()
        . 
    PATH_SEPARATOR MY_APP_ROOT_DIR .  DIRECTORY_SEPARATOR 'lib/zf'
        
    PATH_SEPARATOR MY_APP_ROOT_DIR .  DIRECTORY_SEPARATOR 'lib/dg'
        
    [...]
    ); 
    Da wir alle in einem Boot sitzen, ist es gut, dass wir nicht alle auf einer Seite stehen... (mir unbekannt)

  11. #11
    Ben
    Ben ist offline
    Erfahrener Benutzer Avatar von Ben
    Registriert seit
    02.12.2004
    Ort
    Koblenz
    Beiträge
    4.815

    Standard

    Ah, siehste mal. Hat sich also durchaus gelohnt hier noch mal nachzuhaken.
    Okay, so mach ich das nu.

  12. #12
    Erfahrener Benutzer
    Registriert seit
    04.01.2006
    Beiträge
    964

    Standard

    Brauch man die Konstante PATH_SEPARATOR wirklich? Ich dachte immer, das würde auf Windows-Mühlen längst auch mit "normalem" Slash funktionieren.

    Basti

  13. #13
    Ben
    Ben ist offline
    Erfahrener Benutzer Avatar von Ben
    Registriert seit
    02.12.2004
    Ort
    Koblenz
    Beiträge
    4.815

    Standard

    Keine Ahnung. Ich mach das irgendwie "automatisch" so.

  14. #14
    Erfahrener Benutzer Avatar von dejan_spasic
    Registriert seit
    05.01.2006
    Ort
    Düsseldorf
    Beiträge
    175

    Standard

    Zitat Zitat von Basti Beitrag anzeigen
    Brauch man die Konstante PATH_SEPARATOR wirklich? Ich dachte immer, das würde auf Windows-Mühlen längst auch mit "normalem" Slash funktionieren.

    Basti
    Du meinst wohl die DIRECTORY_SEPARATOR Konstate... nein die braucht nicht man nicht wirklich. Ich finde es halt nur schöner :)
    Da wir alle in einem Boot sitzen, ist es gut, dass wir nicht alle auf einer Seite stehen... (mir unbekannt)

  15. #15
    Benutzer
    Registriert seit
    24.10.2006
    Beiträge
    90

    Standard

    Ich verwende DIRECTORY_SEPARATOR eigentlich nur um zu ermitteln ob ich auf einer Windows Umgebung bin oder nicht.

    define ("IS_WIN", DIRECTORY_SEPARATOR == "\\");
    MfG Tom

  16. #16
    Erfahrener Benutzer
    Registriert seit
    04.01.2006
    Beiträge
    964

    Standard

    Zitat Zitat von dejan_spasic Beitrag anzeigen
    Du meinst wohl die DIRECTORY_SEPARATOR Konstate... nein die braucht nicht man nicht wirklich. Ich finde es halt nur schöner :)
    Ja, die meinte ich (hab ich so aus euren Postings kopiert *g). Und ... schöner? Hab da einen anderen Geschmack.

    Code:
    '/lib/Dao/Dao_User.php'
    
    gefällt mir jedenfalls besser, als
    Code:
    DIRECTORY_SEPARATOR . 'lib' . DIRECTORY_SEPARATOR . 'Dao' . DIRECTORY_SEPARATOR . 'Dao_User.php'
    
    Ich verwende übrigens immer eine Funktion (wird irgendwann noch zur staischen Klassen-Methode werden). Find ich schöner, als Konstanen. *g


    PHP-Code:
    fopen(abspath('foo/bar/' $sFile)); 
    Basti

+ Antworten

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

Ähnliche Themen

  1. Antworten: 6
    Letzter Beitrag: 30.08.2007, 14:36
  2. mod_rewrite - RewriteRegel um Dateien in Verzeichnis zu simulieren
    Von Ben im Forum Tools, Server, Betriebssysteme
    Antworten: 4
    Letzter Beitrag: 20.06.2007, 17:16
  3. Fiese SQL-Abrage
    Von Sayang im Forum Datenbanken
    Antworten: 15
    Letzter Beitrag: 15.08.2006, 19:38
  4. [PHP] FTP-Funktionen in PHP nutzen
    Von MrNiceGuy im Forum Tutorials
    Antworten: 0
    Letzter Beitrag: 24.05.2006, 14:18
  5. datei in verzeichnis speichern
    Von los_flammos im Forum Allgemeine Java-Programmierung
    Antworten: 1
    Letzter Beitrag: 13.04.2005, 19:21

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein

Impressum · Tutorials · Nutzungsbedingungen · thematisch sortierte Linklisten · Spendenaufruf · Team · Partnerprojekte

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34