Ik maak nu gebruik van de volgende expression:

$url = preg_replace("/[^a-z \d]/i", "", $url);

Hiermee zorg ik ervoor dat een ingevoerde url wordt opgeschoond van leestekens en dat spaties worden vervangen voor koppeltekens. Werkt prima, alleen nu wil ik dat een koppelteken zelf niet wordt verwijderd. Is er een uitzondering te maken op één non-alphatetic character?
De reguliere expressie die je hier noemt zet geen spaties om naar koppeltekens ;-)
Hoe dan ook, om te voorkomen dat koppeltekens worden verwijderd, moet je die gewoon in je character class opnemen:

$url = preg_replace("/[^-a-z \d]/i", "", $url);

Let wel op dat je hem opneemt als eerste of laatste teken, omdat anders de parser kan denken dat je een reeks (zoals a-z) definieert.
Als alles zo simpel was in het leven... Bedankt!

Enne, de regel die ik stuurde vervangt inderdaad geen spaties, stom van me. Daar heb ik nog een losse regel voor: $url = str_replace(' ','-',$url);

Reageren