Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/01/2010, 05:25
lamale85
 
Fecha de Ingreso: septiembre-2007
Mensajes: 106
Antigüedad: 16 años, 8 meses
Puntos: 1
Conversión caracteres

Buenas a todos!

Estoy intentando poner lo de las url-amigables y para ello le paso una cadena con el nombre de un curso por ejemplo. Para ello se supone que esta cadena no debe contener ni espacios en blanco, ni tildes, ni caracteres raros.

El problema que tengo es que los espacios en blanco me los sustituye sin problemas por -, pero las tildes no.
Si encuentra un caracter con tilde en vez de ponerme el caracter sin tilde directamente me lo suprime, es decir, imaginen que le paso Comunicación, pues en vez de devolver comunicacion, me devuelve comunicacin.

La cadena que le paso es leida directamente de base de datos.

Os pongo la función que encontré por algún foro:

Código PHP:
function urls_amigables($url) { 

// Tranformamos todo a minusculas 

$url strtolower($url); 

//Rememplazamos caracteres especiales latinos 

$find = array('á''é''í''ó''ú''ñ'); 

$repl = array('a''e''i''o''u''n'); 

$url str_replace ($find$repl$url); 

// Añaadimos los guiones 

$find = array(' ''&''\r\n''\n''+'); 
$url str_replace ($find'-'$url); 

// Eliminamos y Reemplazamos demás caracteres especiales 

$find = array('/[^a-z0-9\-<>]/''/[\-]+/''/<[^>]*>/'); 

$repl = array('''-'''); 

$url preg_replace ($find$repl$url); 

return 
$url


¿Cómo puedo solucionarlo?

Un saludo y gracias