Originariamente inviato da uMoR
Non ho capito bene il replacemente, '"$0"==" "?"-":""' cosa fa

Io ho fatto:

Codice PHP:
$tmp preg_replace('/[^a-z]+/i'$separatorestrtolower($stringa)); 
in questo modo sostituisco con $separatore tutti i caratteri che non rientrano nel range a-z, e se ne trova due o piu di fila (esempio due virgole) li sostituisce con un singolo spazio..

Dico bene ?
Esatto.
Mentre il replacement '"$0"==" "?"-":""' si riferiva alla necessitā di sostituire gli spazi con dei trattini. In pratica nell'espressione regolare attivavo il mod. di criterio e(val). In questo modo preg_replace tratta il replacement come codice php, eseguendolo, e in base a ciō che riconosce ($0 indica l'intero pattern riconosciuto) restituisce il trattino (se spazio) o stringa vuota (negli altri casi).