Een vraagje... ik ben even vergeten hoe het nu ook alweer zat.
Normaal ziet een pad er zo uit:
/pad/foo
Nu meen ik dat het soms zo kan zijn dat soms de slashes andersom staan:
\pad\foo
En dat dat dan automatisch wordt gecorrigeerd naar /pad/foo.
Ik heb even getest door een directory te verwijderen. Met forward slashes lukt dat gewoon, maar met backward slashes werkt het niet.
Dus ik ben even benieuwd of iemand kan uitleggen hoe dat ook alweer zat. Is een pad met backward slashes altijd ongeldig, of kan dit op sommige systemen ook geldig zijn?
Backslashes zijn een dingetje van Windows. Een fatsoenlijk besturingssysteem zal forward slashes gebruiken. ;-)
In een Windows-omgeving kun je ook gewoon met forward slashes werken. Wil je toch met backslashes werken, let dan op dat je die moet escapen: \\pad\\foo
Bij mij lijkt rtrim($path, DIRECTORY_SEPARATOR); alleen backslashes te trimmen, dan zou je beter je 2e optie kunnen gebruiken als je niet weet wat je $path wordt.
Zoals ik al zei: Je moet data normalizen voordat je ze gaat gebruiken in je code. Dus maak een functie die alle backward slashes omzet naar forward slashes en die de trailing slash weghaalt. Ga dan pas werken met de slashes.
DIRECTORY_SEPARATOR zou totaal geen nut hebben als het slechts / of \ betekende. Het mooie van die constante is dat hij op unix systems / is en in windows \.
Merk overigens op dat windows je altijd backward slashes zal geven, maar hij prima overweg kan met forward slashes.