Portal > Foren > PHP > PHP-Programmierung > Verzeichnis über document_root herausfinden möglich?
Antwort
 
Themen-Optionen
Alt 29.12.2006, 13:33 Nach oben    #1
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.480
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
Zitat:
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.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 29.12.2006, 13:39 Nach oben    #2
Christian Mühlroth
 
Benutzerbild 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 '..');
?>
?
__________________
http://www.ChrisDiary.De
Chr!s ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 29.12.2006, 16:45 Nach oben    #3
Bastian Fenske
 
Registriert seit: 04.01.2006
Ort: Kassel
Beiträge: 826
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
Basti ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 29.12.2006, 16:54 Nach oben    #4
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.480
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?
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 29.12.2006, 17:04 Nach oben    #5
Martin Breuer
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.642
Standard

es geht auch public/../app, damit landeste dann im root/app
__________________
I did it my way - Senseless-Blog
WarrenFaith ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 29.12.2006, 17:07 Nach oben    #6
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.480
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.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 29.12.2006, 17:15 Nach oben    #7
Bastian Fenske
 
Registriert seit: 04.01.2006
Ort: Kassel
Beiträge: 826
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
Basti ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 29.12.2006, 17:22 Nach oben    #8
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.480
Standard

Ah, .. klar. Stand gerade auf dem .. na .. dem Schlauch halt.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.01.2007, 20:03 Nach oben    #9
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.480
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.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.01.2007, 20:39 Nach oben    #10
Dejan Spasic
 
Benutzerbild von dejan_spasic
 
Registriert seit: 05.01.2006
Ort: Düsseldorf
Beiträge: 169
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)
dejan_spasic ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.01.2007, 20:50 Nach oben    #11
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.480
Standard

Ah, siehste mal. Hat sich also durchaus gelohnt hier noch mal nachzuhaken.
Okay, so mach ich das nu.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.01.2007, 21:00 Nach oben    #12
Bastian Fenske
 
Registriert seit: 04.01.2006
Ort: Kassel
Beiträge: 826
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
Basti ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.01.2007, 21:03 Nach oben    #13
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.480
Standard

Keine Ahnung. Ich mach das irgendwie "automatisch" so.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.01.2007, 21:09 Nach oben    #14
Dejan Spasic
 
Benutzerbild von dejan_spasic
 
Registriert seit: 05.01.2006
Ort: Düsseldorf
Beiträge: 169
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)
dejan_spasic ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.01.2007, 22:09 Nach oben    #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.

Zitat:
define ("IS_WIN", DIRECTORY_SEPARATOR == "\\");
MfG Tom
Byrel ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.01.2007, 22:39 Nach oben    #16
Bastian Fenske
 
Registriert seit: 04.01.2006
Ort: Kassel
Beiträge: 826
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
Basti ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


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

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Verzeichnisse aus Eclipse-Projekt herausnehmen, im Verzeichnis sollen sie existieren Ben Eclipse 6 30.08.2007 14:36
mod_rewrite - RewriteRegel um Dateien in Verzeichnis zu simulieren Ben Tools, Server, Betriebssysteme 4 20.06.2007 17:16
Fiese SQL-Abrage Sayang Datenbanken 15 15.08.2006 19:38
[PHP] FTP-Funktionen in PHP nutzen MrNiceGuy Tutorials 0 24.05.2006 14:18
datei in verzeichnis speichern los_flammos Allgemeine Java-Programmierung 1 13.04.2005 19:21


Alle Zeitangaben in WEZ +2. Es ist jetzt 05:31 Uhr.


Powered by vBulletin® Version 3.7.3 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

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 35 36 37 38 39 40 41 42 43 44