Was zum Mitgucken: Pfadputzer (Edit: Update)
Raketenwilli
- programmiertechnik
0 Rolf B
Klasse und derzeit enthaltene Methode clearPath()
(Enthält noch ein wenig Überflüssiges...)
Diese Klasse soll etwas wie /foo/bar/../baz/.//tok zu /foo/baz/tok machen. Auch für Windows.
Fragen dazu:
Update:
Jetzt habe ich selbst einen Fehler gefunden- Ich lasse mal die Frage stehen. Lösche den Rest inzwischen.
mit
E_USER_NOTICE
: weiterzumachen und das Ergebnis zu liefern, wenn der resultierende Pfad wegen zu vieler '/../' außerhalb des gegebenen liegt aber mit
E_USER_WARNING
auszusteigen und false zu liefern, wenn der resultierende Pfad wegen zu vieler '/../' außerhalb des gegebenen liegt, jedoch mit
E_USER_ERROR
stets mit einem fatalen Fehler auszusteigen, wenn diese Sachverhalte auftreten.
Bei Windows-Pfaden (mit Laufwerksbuchstaben) stets false zu liefern wenn der ermittelte Pfad auf ein Verzeichnis unterhalb des Windows-Laufwerksbuchstaben fallen würde (und nicht E_USER_ERROR
gefordert wird, was wie oben endet.
Hallo Raketenwilli,
könntest Du - bevor jemand deinen Code inspiziert - darlegen, welche abweichenden Anforderungen sie im Vergleich zu realpath erfüllen soll?
Außer der, nicht zu viel zu tun? Denn realpath prüft auch die Existenz der Datei, was okay sein kann, aber nicht muss.
Es gibt auch noch den hier, aber der scheint mir auf den ersten Blick arg over-engineered...
Rolf
Hallo Raketenwilli,
könntest Du - bevor jemand deinen Code inspiziert - darlegen, welche abweichenden Anforderungen sie im Vergleich zu realpath erfüllen soll?
Außer der, nicht zu viel zu tun? Denn realpath prüft auch die Existenz der Datei, was okay sein kann, aber nicht muss.
Das Überprüfen der realen Existenz eines Dateisystemobjektes soll aus $Gründen[]
gerade nicht, genauer optional, dann aber mit realpath()) stattfinden und auch für Pfade in HTML-Links bzw. anderen URLs funktionieren.