[PHP] RegExp - Pad omzetten

Pagina: 1
Acties:

  • SnoW
  • Registratie: Februari 2000
  • Laatst online: 03-09 10:35
Ik wil een pad met dubbele puntjes (bijvoorbeeld "/dir1/dir2/dir3/dir4/../../../bestand.html") omzetten naar een kloppend pad (bij het voorbeeld wordt dat "/dir1/bestand.html").

Ik had de volgende PHP-code in gedachten:
PHP:
1
2
3
4
5
<?
while(ereg('[^/]*/\.{2}/',$path)) {
   $path = ereg_replace('[^/]*/\.{2}/','',$path);
}
?>

Maar dit werkt alleen als een pad 1 of 2 keer dubbele puntjes bevat. In het geval van mijn voorbeeld werkt het niet.

Kan iemand mij helpen? Ik ben absoluut geen regexp-virtuoos en kan wat hulp goed gebruiken. Alvast bedankt!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Ik kan je wel een eindje op weg helpen.

een dubbele punt staat in feite voor: "vergeet maar welke directory ik net genoemd heb".

waarom? omdat:
/dir1/dir2/../bestand.html
hetzelfde is als:
/dir1/bestand.html

dus, wat kun je weggooien? Alle terugreferenties inclusief de directory ervoor, als die laatste zelf geen terugreferentie is. Snappie waar ik heen wil?

Dan ben je alvast een heel eind op weg.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz