Quindi sto creando URL per le mie pagine facendo quanto segue:
$uri = strtolower($info->name); $uri = str_replace('&','and',$uri); $uri = $info->id."-".preg_replace('/[^a-zA-Z0-9]/','-',$uri);
Fondamentalmente faccio tutto in minuscolo, cambia &
in e cambia tutti i caratteri speciali in un -
. Il mio unico problema ora se per esempio $info->name
è this is - a string
che verrà mostrata come this-is---a-string
.
Mi piacerebbe che questo diventasse this-is-a-string
senza fare qualcosa come str_replace('---','-',$input);
Immagino di aver bisogno di un'espressione regolare per questo, ma sono orribile con quelli, quindi mi chiedevo se qualcuno potesse darmi una mano.
Modificare
$uri = $info->id."-".preg_replace('/[^a-zA-Z0-9]/','-',$uri);
a
$uri = $info->id."-".preg_replace('/[^a-zA-Z0-9]+/','-',$uri);