Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/01/2010, 06:27
lamale85
 
Fecha de Ingreso: septiembre-2007
Mensajes: 106
Antigüedad: 16 años, 8 meses
Puntos: 1
Problema con conversion de tildes

Hola a todos!

Tengo el siguiente problema:

Recibo una variable de un campo de texto de un formulario, y quiero antes de meterlo en base de datos quitarle las tildes, es decir en vez de meter "í" pues grabar "i".

Al principio lo que quería era al contrario, leer de base de datos y quitarle las tildes a lo que leía, pero no me dejaba e imaginé que era algún problema con la base de datos, por eso ahora lo que quiero es quitarlas antes de meterla en base de datos.

He probado las siguientes funciones:
Código PHP:
function urls_amigables($cadena) {
    
$cadena trim($cadena);
    
$cadena strtr($cadena,
"ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ",
"aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn");
    
$cadena strtr($cadena,"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz");
    
$cadena preg_replace('#([^.a-z0-9]+)#i''-'$cadena);
        
$cadena preg_replace('#-{2,}#','-',$cadena);
        
$cadena preg_replace('#-$#','',$cadena);
        
$cadena preg_replace('#^-#','',$cadena);
    return 
$cadena;


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

// Tranformamos todo a minusculas 

$url strtolower($url); 

//Rememplazamos caracteres especiales latinos 

$url str_replace ("á""a"$url);
$url str_replace ("é""e"$url);
$url str_replace ("í""i"$url);
$url str_replace ("ó""o"$url);
$url str_replace ("ú""u"$url);
$url str_replace ("ñ""u"$url);

// Añaadimos los guiones 

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

// Eliminamos y Reemplazamos demás caracteres especiales 

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

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

$url3 preg_replace ($find$repl$url2); 

return 
$url3

}
?>
Pero no me funcionan, la primera lo que hace es cambiarme las tildes y ñ por "-", y la segunda lo que hace es eliminarme directamente la letra que lleve tilde o que sea ñ.

¿Alguien sabe por qué me pasa esto?¿Cómo puedo solucionarlo?

Un saludo y gracias