• Miércoles 20 de Noviembre de 2024, 08:25

Autor Tema:  Tildes  (Leído 3640 veces)

ramirolaso

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Tildes
« en: Viernes 22 de Abril de 2005, 06:14 »
0
Hola!  tengo la siguiente duda: Tengo un mini-foro que lo hice con PHP y MySQL. El problema que tengo es cuando alguien escribe letras con tildes (á , é , í , ó ú, ñ ,Ñ, etc.). Luego estas  aparecen reemplazadas por caracteres raros. Como puedo hacer para cambiar las letras tildadas con las respectivas etiquetas HTML. Muchas Gracias. Ramiro Laso.  :unsure:

Avalon

  • Miembro MUY activo
  • ***
  • Mensajes: 448
    • Ver Perfil
Re: Tildes
« Respuesta #1 en: Viernes 22 de Abril de 2005, 10:13 »
0
Hola, lo puedes hacer con la función str_replace

Citar
string str_replace(string subcadena1, string subcadena2, string cadena);

Por ejemplo:

$mensaje = str_replace("á", "á", $mensaje);
$mensaje = str_replace("é", "é", $mensaje);
...
$mensaje = str_replace("N", "Ñ", $mensaje);


Espero te sirva.


Salu2,
Avalon

ramirolaso

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Tildes
« Respuesta #2 en: Viernes 22 de Abril de 2005, 15:16 »
0
Muchas gracias  Avalon. Ahora lo voy a implentar  en mi "mini-foro". Salu2. Ramiro. :o

ramirolaso

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Tildes
« Respuesta #3 en: Viernes 22 de Abril de 2005, 15:42 »
0
Hola, hice como me decias y construi esta funcion:

function tildes($mensajes){
//minúsculas
   $mensaje = str_replace("á", "á", $mensaje);
   $mensaje = str_replace("é", "é", $mensaje);
   $mensaje = str_replace("í", "í", $mensaje);
   $mensaje = str_replace("ó", "ó", $mensaje);
   $mensaje = str_replace("ú", "ú", $mensaje);
   $mensaje = str_replace("ñ", "ñ", $mensaje);
//mayúsculas.
   $mensaje = str_replace("Á", "Á", $mensaje);
   $mensaje = str_replace("É", "É", $mensaje);
   $mensaje = str_replace("Í", "Í", $mensaje);
   $mensaje = str_replace("Ó", "Ó", $mensaje);
   $mensaje = str_replace("Ú", "Ú", $mensaje);
   $mensaje = str_replace("Ñ", "Ñ", $mensaje);

return ($mensaje);
}
la puse en un archivo "tildes.php"


y desde un archivo de pruebas lo siguiente:
<?PHP
require ("tildes.php");
$mensaje = 'áaaasdd';

echo 'Menjase:'.tildes($mensaje);

?>



pero así no me funciona y no se porque. Si pruebo reemplazar las cadenas desde el archivo prueba.php (es decir sin crear la funcion) se ejecuta todo correctamente. Pero no quiero tener que escribir todo ese código cada vez que tenga cajas de textos. Gracias . Ramiro.


YA ME DI CUENTA DEL ERROR TONTO QUE COMETÍ, DISCULPA LAS MOLESTIAS :unsure:

JDO

  • Nuevo Miembro
  • *
  • Mensajes: 16
    • Ver Perfil
Re: Tildes
« Respuesta #4 en: Martes 26 de Abril de 2005, 04:17 »
0
una solucion rapida aunque poco optima es reemplazar estos caracteres antes de ingresarlos en la base de datos


ya se que que es poco ortodoxa pero cumple el cometido si estas de afan

ramirolaso

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Tildes
« Respuesta #5 en: Martes 26 de Abril de 2005, 15:46 »
0
esta buena esa idea, pero es muy poco práctica, ya que debería decirles pedirles a los usuarios que carguen ellos los acentos. De todas formar ya funciona con la función que armé. Saludos y gracias. ramiro.

Avalon

  • Miembro MUY activo
  • ***
  • Mensajes: 448
    • Ver Perfil
Re: Tildes
« Respuesta #6 en: Miércoles 27 de Abril de 2005, 14:03 »
0
Esta es otra forma de hacer lo mismo, con la ventaja de que no convierte sólo las tildes sinó también otros caracteres conflictivos

Código: Text
  1. &#60;?php
  2.  
  3.   function convierteHTML(&#036;mensaje) {
  4.     &#036;trans_tbl = get_html_translation_table(HTML_ENTITIES);
  5.     return strtr(&#036;mensaje, &#036;trans_tbl);
  6.   }
  7.  
  8.   echo convierteHTML(&#34;Esta mañana salí al balcón&#34;);
  9.  
  10. ?&#62;
  11.  
  12.  


Salu2,
Avalon

ramirolaso

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Tildes
« Respuesta #7 en: Jueves 28 de Abril de 2005, 00:54 »
0
Muy BUENA!!. Y es mas simple que la anterior!!. La voy a Probar.!

Rainholder

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Tildes
« Respuesta #8 en: Jueves 12 de Mayo de 2005, 00:04 »
0
Saludos a todos, ojala me puedan ayudar con esto, se que no es algo dificil pero pues no se como hacerlo

Tengo una forma de contacto hecha en flash al momento de que alguien la llena en el website llama a la variable en un php y al  llegarme el correo a la bandeja me llega con simbolos reemplazando los acentos y las ñ estoy tratando de utilizar las funciones que dan aqui pero no se muy bien como.

 voy a pegar aqui el codigo que tiene mi archivo php y espero me puedan decir como acomodarlo en el mismo archivo o ponerlo en otro y llamarlo.

<?PHP
$to = "correo@misitio.com";
$msg .= "Este mensaje ha sido enviado desde el Website\n\n";
$msg .= "Nombres: $name\n";
$msg .= "Email: $email\n";
$msg .= "Mensaje: $comment\n";
mail($to, $name, $msg, "From: Forma de Contacto\nReply-To: $email\n");
?>

ya he intentado poner la funcion de varias formas pero no funciona, espero me ayuden gracias de antemano