Foros del Web » Programando para Internet » PHP »

caracteres especiales

Estas en el tema de caracteres especiales en el foro de PHP en Foros del Web. estoy haciendo una web en la que los usuario meten muchos datos en una base de datos, una forma es mediante un foro. entonces supongo ...
  #1 (permalink)  
Antiguo 04/12/2007, 04:35
 
Fecha de Ingreso: octubre-2007
Mensajes: 394
Antigüedad: 17 años
Puntos: 2
caracteres especiales

estoy haciendo una web en la que los usuario meten muchos datos en una base de datos, una forma es mediante un foro. entonces supongo que antes de meter yo esos datos que introducen ellos en los formularios tendr que pasarlos por unas funciones o metodos para cambiar los caracteres especiales (aacute y estos raros). Me gustaría saber como se hace eso, si ya existe clases predefinidas que lo hagan...etc....

axias y un saludo
  #2 (permalink)  
Antiguo 04/12/2007, 07:03
 
Fecha de Ingreso: abril-2004
Mensajes: 39
Antigüedad: 20 años, 7 meses
Puntos: 2
Re: caracteres especiales

Hay varias funciones incorporadas en PHP que te permiten "traducir" el código HTML.

http://www.php.net/manual/es/function.htmlspecialchars-decode.php
http://www.php.net/manual/es/function.html-entity-decode.php

Saludos!
__________________
Caiman Systems - Diseño y programación de aplicaciones de gestión y páginas web
  #3 (permalink)  
Antiguo 04/12/2007, 07:10
 
Fecha de Ingreso: septiembre-2007
Mensajes: 220
Antigüedad: 17 años, 2 meses
Puntos: 1
Re: caracteres especiales

Suele ser mejor guardar los datos originales que escriben por si más adelante cambias la manera de filtrarlos, puedes tener dos campos, mensaje y mensaje_filtrado asi no tienes que filtrar el mensaje cada vez que lo muestres, y cada x tiempo filtrarlo por si ha habido novedades en los filtros, una especie de cache.

Sobre filtrarlos si es un foro con códigos como [ b ] y demás tendrás que usar expresiones regulares, si simplemente tienes que quitar el html con htmlentities te valdrá.
  #4 (permalink)  
Antiguo 04/12/2007, 13:39
 
Fecha de Ingreso: octubre-2007
Mensajes: 394
Antigüedad: 17 años
Puntos: 2
Re: caracteres especiales

pero luego no tendre que usar ninguna funcion de decode, no? es decir yo cojo el mensaje que me meta en el foro.......le aplico htmlentities..............y eso se supone que me cambiara caracteres especiales como las tildes -- "había" --- por " había " por lo que yo en mi BD tendre guardado por ejemplo la frase:
-->>> hab&iacute;a una casa <<<--- y luego con cojer eso y mostrarlo en el navegador...el navegador ya se encargara de enteder eso, no? no tengo k decodificar nada ¿?


un salu2
  #5 (permalink)  
Antiguo 04/12/2007, 13:51
 
Fecha de Ingreso: octubre-2007
Mensajes: 394
Antigüedad: 17 años
Puntos: 2
Re: caracteres especiales

Cita:
Iniciado por Blade_Stom Ver Mensaje
pero luego no tendre que usar ninguna funcion de decode, no? es decir yo cojo el mensaje que me meta en el foro.......le aplico htmlentities..............y eso se supone que me cambiara caracteres especiales como las tildes -- "había" --- por " hab&iacute;a " por lo que yo en mi BD tendre guardado por ejemplo la frase:
-->>> hab&iacute;a una casa <<<--- y luego con cojer eso y mostrarlo en el navegador...el navegador ya se encargara de enteder eso, no? no tengo k
decodificar nada ¿?



repito lo que me gustaría hacer: mi web quiero que sea en XHTML xo la mayoria estara desarrolado en php y mysql. entonces cuando la gente meta datos en mi BD por ejemplo un mensaje en el foro: AQUÍ ESTARÁ MI CASA.
si yo guardo eso tal cual en la BD y luego tal cual hago una select y la muestro en la web habrá muchos casos en los que creo que dara errores ya que creo que las tildes hay que convertirlas y poner algo asi como iacute y cosas de esas, tonces esa frase que el usuario escribe me interesa convertirle correctamente, como se haria?


un salu2
  #6 (permalink)  
Antiguo 04/12/2007, 17:19
 
Fecha de Ingreso: septiembre-2007
Mensajes: 220
Antigüedad: 17 años, 2 meses
Puntos: 1
Re: caracteres especiales

El navegador muestra lo que le mandas, y si le mandas lo que está en la Base de Datos es lo que muestra, te decía que suele ser mejor guardar los datos originales por si luego por ejemplo en vez de querer aplicar sólo htmlentities añades caritas o lo que sea y lo filtras también.
  #7 (permalink)  
Antiguo 05/12/2007, 03:17
 
Fecha de Ingreso: octubre-2007
Mensajes: 394
Antigüedad: 17 años
Puntos: 2
Re: caracteres especiales

ok eso entendido pero no sería mucho gasto de disco el estar todo por duplicado?

otra cosa....tonces si en mi base de datos e guardado este mensaje --->>> Aqu&iacute.........bla bla bla

cuando coja ese mensaje de la BD y lo muestro en el navegador...k me mostrara?
Au&iacute o Aquí ?

por otro lado....sto de poner carita como en este foro y estas cosillas que lo unico que te hacen es agregar por ejemplos cosas como esta -->> : - ( luego xa convertir eso en el dibujito...que tendría que recorrer todos los strings y cuando encuentre uan secuencia de caracteres como la anterior....poner un dibujito? o ai formas mas eficientes? pk andar siempre recorriendo todos los strings......en busca de ese tipo de sevcuencias....
  #8 (permalink)  
Antiguo 05/12/2007, 05:39
 
Fecha de Ingreso: septiembre-2007
Mensajes: 220
Antigüedad: 17 años, 2 meses
Puntos: 1
Re: caracteres especiales

El doble de gasto en disco, todo depende del número de mensajes aunque por la funcionalidad suele compensar.
La otra opción es recorrer todos los mensajes y filtrarlos cada vez que los muestres, gasta menos disco pero carga más el servidor, depende del número de visitas y de mensajes.

El navegador muestra lo mismo que si tu lo escribieses, si escribes aquí o aqu&iacute; al que lo ve le muestra lo mismo pero en el códiog fuente de la página es distinto.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:04.