Normalizando strings com preg_replace

Bem, há algum tempo tive que normalizar uma string para que pudesse ser usada em uma url amigável.
Eu usei preg_replace que usa regexp e é muito mais simples neste caso. Claro, minha solução é baseada no que eu precisava naquele momento, então você pode precisar de algumas mudanças se quiser usar. Mesmo assim vale a pena compartilhar e dar uma olhada.

function normalizeString ($ name) {
// Tudo em minúsculas
$ name = strtolower ($ name);

// Just normal vogals must remain
$name
= preg_replace('/[aáàãâäAÁÀÃÂÄ]/', 'a', $name);
$name
= preg_replace('/[eéèêëEÉÈÊË]/', 'e', $name);
$name
= preg_replace('/[iíìîïIÍÌÎÏ]/', 'i', $name);
$name
= preg_replace('/[oóòõôöOÓÒÕÔÖ]/', 'o', $name);
$name
= preg_replace('/[uúùûüUÙÚÛÜ]/', 'u', $name);
$name
= preg_replace('/[cçCÇ]/', 'c', $name);

// No more than 1 space sequentially
$name
= preg_replace('/s{2,}/', ' ', $name);

// Spaces must became underscores
$name
= preg_replace('/ /', '_', $name);

// Just letters and numbers
$name
= preg_replace('/[^a-z0-9_]/', '', $name);

return $name;

}