<?php
function getSlug($cadena, $separador='-') {
// Eliminamos el separador si ya existe en la cadana actual
$cadena = str_replace($separador, "",$cadena);
// Convertimos la cadena a minúsculas
$cadena = strtolower($cadena);
// Remplazamos tildes y eñes (strtolower no convierte en minúsculas
// estos valores así que cambiamos sus respectivas mayúsculas en
// minúsculas sin tilde)
$cadena = strtr($cadena, "áéíóúÁÉÍÓÚñÑ", "aeiouaeiounn");
// Eliminamos cuarquier carácter no alfamnumérico
$cadena = trim(preg_replace("/[^ a-z0-9]/", "", $cadena));
// Insertamos el separador
$cadena = preg_replace("/[ \t\n\r]+/", $separador, $cadena);
return $cadena;
}
echo getSlug('hola CaÑÑÑoáAÓd');