Ya lo postee en el blog personal, pero dado que para eso está este blog lo posteo aquí también.
Esta función sirve para limpiar una cadena de acentos y sustituir los espacios en blanco por guiones medios como manda el buen código del SEO, permitiendo unas URLs más agradables, especialmente para los buscadores, al estilo de worpdress.
function sanitize( $cadena ) {
return( strtolower( utf8_encode( strtr( trim( $cadena ),
utf8_decode( '_ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞß àáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿŔŕ' ),
'-aaaaaaaceeeeiiiidnoooooouuuuybs-aaaaaaaceeeeiiiidnoooooouuuyybyRr' ) ) ) );
}
$titulo = "Encuentra fácilmente una cabaña rural para las vacaciones";
$tilulo_sano = sanitize( $titulo );
echo( $titulo_sano );
//Y nos devolverá el título válido para buscadores.
// encuentra-facilmente-una-cabana-rural-para-las-vacaciones
Post original en el Blog de Antonio Villamarín

Me parece muy útil, pero creo que se podría mejorar añadiendo mas caracteres especiales, por ejemplo las exclamaciones, para que un título del tipo “¡Encuentra fácilmente una cabaña rural para las vacaciones!” lo convierta también a una URL válida.
Saludos y ánimos con el blog!
Titulos sanitizados
no funciona el codigo ni la funcion ni nada
El código funciona adecuadamente, he vuelto a probar literalmente el expuesto en el post y ha ido como debía. Mira a ver si algún caracter no lo has copiado bien, añadir al fichero el inicio y fin en php () a ver si fuera eso.
Saludos.