Foros del Web » Programando para Internet » PHP »

Problema con html_entity_decode

Estas en el tema de Problema con html_entity_decode en el foro de PHP en Foros del Web. Hola a todos Mi problema es el siguiente al aplicar la funcion html_entity_decode aun texto que tengo almacenado en la bd y quererlo "poner" a ...
  #1 (permalink)  
Antiguo 27/06/2006, 11:02
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 12 años, 9 meses
Puntos: 33
De acuerdo Problema con html_entity_decode

Hola a todos

Mi problema es el siguiente al aplicar la funcion html_entity_decode aun texto que tengo almacenado en la bd y quererlo "poner" a un <textarea> me aparecen las etiquetas <p><br>.... pero si hago el echo de mi variable $true_text en pantalla si muestra la informaciòn de forma correcta. ¿Existe alguna condicion especial para el textarea?
Código PHP:
<?
$true_text 
html_entity_decode($res2['texto']);
//echo $true_text;
echo "<textarea cols='70' rows='30' name='texto'>".$true_text."</textarea>";
<?
Saludillos.
  #2 (permalink)  
Antiguo 27/06/2006, 11:46
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 12 años, 9 meses
Puntos: 33
Exclamación

Por favor necesito que alguien me ayude a resolver este problema


Gracias.
  #3 (permalink)  
Antiguo 27/06/2006, 12:07
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
pero si hago el echo de mi variable $true_text en pantalla si muestra la informaciòn de forma correcta.
Esto es completamente normal, .. fijate que tu en tu BBDD almacenas HTML; código HTML y cuando le haces un "echo" simplemente .. así lo presentas en una página HTML y se interpreta su código HTML por tu navegador (cliente).

Cita:
¿Existe alguna condicion especial para el textarea?
Bueno .. un "textarea" común y silvestre (de HTML original) tan sólo atiende a código simples como el:

\n y/o \r salto de línea
\t tabulador ...

y pocos más.

Si quieres un "<textarea>" que interprete HTML deberías usar alguna utilidad como por ejemplo:

HTML Area
www.htmlarea.com

O similar .. eso es Javascript+DHTML/DOM el cual te hace la "gracia" de ver visualmente un editor HTML pero en un "textarea" .. ahí puedes componer tu HTML y demás.

(No sé si realmente estás ya usando algún editor de estos a la hora de pedir tus datos en tu "<textarea>" .. por qué si es así .. ten presente que eso genera HTML!!).

Por otro lado .. tu puedes "limpiar" de HTML (código) una cadena dada (tu valor de tus BBDD que obtienes) .. para eso deberías usar:

strip_tags()
http://www.php.net/manual/es/function.strip-tags.php

Pero como veras .. ahí quitas todos tus <br> o <p> como saltos de línea y por supuesto no vas a ver esas "negritas" ni otro tipo de formato que le distes en HTML ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 27/06/2006, 12:46
Avatar de nosoynadie  
Fecha de Ingreso: noviembre-2005
Ubicación: dando vueltas por aquí
Mensajes: 206
Antigüedad: 12 años
Puntos: 1
No sé si esto a lo que te refieres:
Código PHP:
<?
$true_text 
html_entity_decode($res2['texto']);
//echo $true_text;
echo "<textarea cols='70' rows='30' name='texto'>".nl2br($true_text)."</textarea>";
?>
http://es2.php.net/manual/es/function.nl2br.php
__________________
http://www.nosoynadie.net/
  #5 (permalink)  
Antiguo 27/06/2006, 13:08
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 12 años, 9 meses
Puntos: 33
De acuerdo

Pues una ves mas tenias razon mi agmigo Cluster . Se resolvio el problema con un editor.

Gracias.
  #6 (permalink)  
Antiguo 27/06/2006, 14:22
Avatar de elquique  
Fecha de Ingreso: marzo-2004
Ubicación: Florida, Uruguay
Mensajes: 2.495
Antigüedad: 13 años, 8 meses
Puntos: 78
Ya que Cluster menciona el htmlarea y el post va del html_entity_decode me sumo a esto y les planteo mi problema....

Tengo un backend que uso en una aplicacion para diarios y mis sitios (un CMS propio) y para la publicacion de articulos uso htmlarea sin problemas por varios años, el tema que nunca tuve que publicar articulos que por ejemplo mencionen codigos HTML, o sea en los diarios noticias normalitas como cualquier diario, en el de photoshop tutoriales de photoshop, perooo el problema que en un articulo hice mencion a <html> y <body> dentro del texto para explicar una cosilla.

El htmlarea cuando lo cree me lo tomo bien ya que me guardo los < como codigo, el problema que hace unos dias edite el articulo y cuando el htmlarea toma de la base de datos el codigo del < lo pasa a un < (no codigo) y bueno por tanto queda el <body> y el <html> como etiqueta reales :(

No le he encontrado la solucion y he tenido qeu editar en DW y pegar a mano por la base de datos jaja :$ (vergonzozo) si bien no busque mucho me quito algunas horas y opte por la solucion chochina esa pero que se les ocurre ?? como puedo solucionar ?
__________________
Blog Jorge Oyhenard | Tutoriales Photoshop
  #7 (permalink)  
Antiguo 27/06/2006, 15:33
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Iniciado por elquique
Ya que Cluster menciona el htmlarea y el post va del html_entity_decode me sumo a esto y les planteo mi problema....

Tengo un backend que uso en una aplicacion para diarios y mis sitios (un CMS propio) y para la publicacion de articulos uso htmlarea sin problemas por varios años, el tema que nunca tuve que publicar articulos que por ejemplo mencionen codigos HTML, o sea en los diarios noticias normalitas como cualquier diario, en el de photoshop tutoriales de photoshop, perooo el problema que en un articulo hice mencion a <html> y <body> dentro del texto para explicar una cosilla.

El htmlarea cuando lo cree me lo tomo bien ya que me guardo los < como codigo, el problema que hace unos dias edite el articulo y cuando el htmlarea toma de la base de datos el codigo del < lo pasa a un < (no codigo) y bueno por tanto queda el <body> y el <html> como etiqueta reales :(

No le he encontrado la solucion y he tenido qeu editar en DW y pegar a mano por la base de datos jaja :$ (vergonzozo) si bien no busque mucho me quito algunas horas y opte por la solucion chochina esa pero que se les ocurre ?? como puedo solucionar ?
No sé si hay algún editor de código HTML visual (DHTML o similar) que tenga alguna funcionalidad al respecto ..

La única solución que se me ocurre al respecto es tratar el tema como lo hacen estos foros .. a base de "psudo.tags" própios que definan donde empieza tu código y donde acaba. ..

[code ]
tu código ..
[/code ]

De esta forma al aislar dicha porción de código (con expresiones regulares) podrías aplicar sólo a esa sección de tu "cadena" (que es en el fondo lo que vas a tener) la función de PHP html_entity_decode() si corresponde.

Aunque si escribes código HTML en ese tipo de editores los caracteres como < y > entre otros se pasan ya a entidades HTML.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 27/06/2006, 17:48
Avatar de elquique  
Fecha de Ingreso: marzo-2004
Ubicación: Florida, Uruguay
Mensajes: 2.495
Antigüedad: 13 años, 8 meses
Puntos: 78
Ok, voy a probar a ver si puedo implantarle algo asi.

Yo hoy dia escribo < y en guardo eso en la base de datos y en ella se ve &lt; hasta ahi todo ok.

Cuando leo la base de datos y hago
Cita:
$texto = $row['texto'];
en $texto esta &lt;

hasta ahi todo bien, yo luego cargo en el text area lo que hay en la base asi:
Cita:
<textarea name="textarea"><?php echo $texto; ?></textarea>
o sea que eso funciona bien y hasta ahi llego el &lt; pero claro el JavaScript del htmlArea que tiene intervenido ese textarea se ve que le quita el &lt; y lo deja < busque donde y realmente no encontre la linea, y tampoco encontre un hack o propiedad que cambie eso.
__________________
Blog Jorge Oyhenard | Tutoriales Photoshop
  #9 (permalink)  
Antiguo 28/06/2006, 07:17
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Iniciado por elquique
Ok, voy a probar a ver si puedo implantarle algo asi.

Yo hoy dia escribo < y en guardo eso en la base de datos y en ella se ve &lt; hasta ahi todo ok.

Cuando leo la base de datos y hago

en $texto esta &lt;

hasta ahi todo bien, yo luego cargo en el text area lo que hay en la base asi:


o sea que eso funciona bien y hasta ahi llego el &lt; pero claro el JavaScript del htmlArea que tiene intervenido ese textarea se ve que le quita el &lt; y lo deja < busque donde y realmente no encontre la linea, y tampoco encontre un hack o propiedad que cambie eso.
En ese caso vas a tener que investigar por el lado javascript y como trabaja "htmlArea" ese tema o incluso tendras que implementar un "botón" nuevo con el proceso que tengas que hacer para ese tipo de casos...

Podrías probar otros editores visuales de HTML para "texarea" a ver si alguno incorpora alguna funcionalidad al respecto.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #10 (permalink)  
Antiguo 28/06/2006, 09:14
Avatar de nosoynadie  
Fecha de Ingreso: noviembre-2005
Ubicación: dando vueltas por aquí
Mensajes: 206
Antigüedad: 12 años
Puntos: 1
Aquí tienes otro editor HTML, se llama SPAW
http://www.solmetra.lt/en/disp.php/e.../en_spaw_about
__________________
http://www.nosoynadie.net/
  #11 (permalink)  
Antiguo 28/06/2006, 10:34
Avatar de elquique  
Fecha de Ingreso: marzo-2004
Ubicación: Florida, Uruguay
Mensajes: 2.495
Antigüedad: 13 años, 8 meses
Puntos: 78
Gracias a ambos :) voy a investigar ese nuevo y dedicarle otro rato al Javascript del htmlarea a ver si puedo anular eso.
__________________
Blog Jorge Oyhenard | Tutoriales Photoshop
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 01:40.