| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| muh Registriert seit: Apr 2002 Ort: Freiburg / Stuttgart
Beiträge: 4.338
| [Stuff] Umgang mit Pfaden
Moinmoin, schon seit längerem stört mich der Umgang mit Pfaden in PHP, dieses ständige Stringzusammengefuzle nervt mich ungeheuerlich, deshalb habe ich jetzt mal eine kleine Klasse dazu geschrieben. Sie soll den Umgang mit den Pfaden etwas abstrahieren, und vorallem zuverlässig (schöne) Pfad-Strings ausspucken. PHP-Code: Mir ist die Klasse Net_URL von PEAR bekannt, diese hat aber den etwas anderen Anspruch URLs darzustellen, inklusive Get-Variablen, host, port und was nicht alles dazugehört. Mir geht es mehr um die Navigation in dem Pfad. EDIT: hier noch ein Beispiel: PHP-Code:
__________________ »Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!) Geändert von Janoscharlipp (14-02-2006 um 18:27 Uhr) |
| | |
| | #2 (permalink) |
| mod_rewrite Registriert seit: Feb 2003 Ort: München
Beiträge: 15.621
|
Janosch, kannst vielleicht schnell ein Beispiel posten, wie dieses "Stringzusammengefuzle" bei dir so aussieht, und was deine Klasse draus macht..? Wäre (zumindest für mich) auf die Schnelle anschaulicher glaub ich... |
| | |
| | #6 (permalink) |
| schnarchnase Registriert seit: Jan 2002 Ort: konstanz
Beiträge: 2.953
|
ne, gibt schon anwendungen... gerade auch z.b. um die identität von pfaden festzustellen. wenn es dir mal passiert, dass "/home/bla/hello" und "/home/bla/../bla/hello" nicht identisch sind, hast du ein problem. ...
__________________ perlen vor die säue. |
| | |
| | #7 (permalink) |
| flachzange Registriert seit: Jun 2003 Ort: berlin
Beiträge: 3.932
|
Ich arbeite lieber mit absoluten Pfaden schon wegen der open_basedir Direktive. Den Projektpfad bekomme ich einfach per: PHP-Code: PHP-Code: in den include_path gesetzt, diese brauchen also auch keine relativen Pfade. Wenn ich relative/existierende Pfade absolut haben will, leistet realpath() eigentlich gute dienste. Das reicht imho auch um Pfade zu vergleichen.
__________________ |
| | |
| | #8 (permalink) |
| muh Registriert seit: Apr 2002 Ort: Freiburg / Stuttgart
Beiträge: 4.338
|
Bei mir ist das Problem eigentlich, dass ich mit einer RewriteRule den Kontext der PHP-Datei im Browser „verschiebe“ und deshalb dauernd mit wilden relativen Pfaden rumhantieren muss. Net_URL ist mir bekannt (wie schon eingangs geschrieben) ermöglicht aber nicht die Navigation mit sub und sup. Jetzt fehlt mir noch die Möglichkeit den „Differenzpfad“ von zwei Pfaden zu bestimmen, mal gucken
__________________ »Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!) |
| | |
| | #9 (permalink) |
| flachzange Registriert seit: Jun 2003 Ort: berlin
Beiträge: 3.932
|
Für das mod_rewrite Problem würde ich eher einen ordentlichen FrontController bauen der das "Dateisystem simuliert". D.h. du Schreibst nicht wirklich Pfade in andere Pfade um sondern Schreibst die Pfade in GET Parameter. Also: http://beispiel.de/myapp/artikel/23 Wird zu: http://beispiel.de/myapp.php?show=artikel&id=23 Damit bist du unabhängig von der Struktur im Dateisystem. Aber vielleicht trifft das ja garnicht auf deine Bedürfnisse zu..
__________________ |
| | |
| | #10 (permalink) |
| muh Registriert seit: Apr 2002 Ort: Freiburg / Stuttgart
Beiträge: 4.338
|
Es geht mehr darum, dass der Aufbau der Seite der einer „normalen“ Seite gleicht, d. h. sich ganz normal über FTP und geringen HTML-Kenntnissen pflegen und erweitern lässt. Allerdings sollen die Inhalte in einem Grundgerüst (=> Template) eingefügt werden, zudem soll automatisch ein Menue passend zur Ordnerstruktur und der aktuellen Position darin, generiert werden. Ich verwende also die RewriteRule nur dafür, irgendwie mit PHP dazwischen zu funken, sprich die Inhalte in das Haupt-Template einzufügen, und das Menue zu generieren. Die Inhalte selbst (Bilder, Java-Applets …) sollen wie gewohnt in der Ordnerstruktur liegen. D.h.: www.x.tld/english/abc/efg wird (wenn abc/efg keine existente Datei ist) vom Apache als www.x.tld/english/content.php?content=abc/efg behandelt.
__________________ »Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!) Geändert von Janoscharlipp (15-02-2006 um 13:24 Uhr) |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |