Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] ¿Cómo asignar HTML como texto plano a un textarea mediante PHP?

Estas en el tema de ¿Cómo asignar HTML como texto plano a un textarea mediante PHP? en el foro de PHP en Foros del Web. Buen día. Tengo la sig variable: Código PHP: $string1  =  '<div style="position:abosolute; top:0; left:0; width:200px; height:200px; background-color:yellow;>Algo</div>' ;  La cual la paso a una variable Javascript : @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: ...
  #1 (permalink)  
Antiguo 10/10/2013, 12:44
Avatar de berkeleyPunk  
Fecha de Ingreso: febrero-2013
Ubicación: México :C
Mensajes: 565
Antigüedad: 11 años, 9 meses
Puntos: 22
Sonrisa ¿Cómo asignar HTML como texto plano a un textarea mediante PHP?

Buen día.

Tengo la sig variable:
Código PHP:
$string1 '<div style="position:abosolute; top:0; left:0; width:200px; height:200px; background-color:yellow;>Algo</div>'
La cual la paso a una variable Javascript:
Código PHP:
Ver original
  1. echo '<script type="text/javascript">';
  2.     echo 'var varJS = "';
  3.     echo $string1;
  4.     echo '";';
  5.     echo '</script>';

Entiendo que la variable $string1 es una cadena, que aunque tenga HTML, es una cadena. Bueno, tengo esta variable en un documento, y quiero llevarme esta variable a otro documento PHP. Lo 1ro que se me ocurrió, que es lo que hago siempre, es pasar esta variable PHP a una variable JS y con JS asignar el valor de la variable a un input text dentro de un formulario. Y en el otro documento sacar el valor del input con $_POST en PHP.

Esto siempre me funciona cuando el contenido de la variable es, digamos, texto plano. La bronca es que ahora el valor de la variable es código HTML. Veo que no puedo asignar este contenido a un input text o a un textarea. Éstos no muestran el contenido de la variable, ni siquiera como texto plano -que es lo que yo pretendo.

Lo que yo busco es que el textarea muestre el texto plano. Para luego sacarlo con $_POST desde otro archivo PHP.

SALUDOS

PD. Se me ocurre la idea de abrir una sesión y así llevarme la variable, pero ya empecé esto del textarea y la curiosidad no me va dejar en paz hasta que lo logre.

Última edición por berkeleyPunk; 10/10/2013 a las 12:55
  #2 (permalink)  
Antiguo 10/10/2013, 13:06
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: ¿Cómo asignar HTML como texto plano a un textarea mediante PHP?

Para que el HTML se comporte como texto plano debes codificarlo con htmlentities() primero, consulta el manual.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 10/10/2013, 14:00
Avatar de berkeleyPunk  
Fecha de Ingreso: febrero-2013
Ubicación: México :C
Mensajes: 565
Antigüedad: 11 años, 9 meses
Puntos: 22
Respuesta: ¿Cómo asignar HTML como texto plano a un textarea mediante PHP?

Cita:
Iniciado por pateketrueke Ver Mensaje
Para que el HTML se comporte como texto plano debes codificarlo con htmlentities() primero, consulta el manual.

Muchas gracias por responder amigo pateketrueke.

Ya consulté el manual, como recomendaste, pero mi problema persiste. Explico.

Código PHP:
        $string1 'Este <b>HTML</b> debe aparecer como <span style="color:red">texto</span> plano';
        
        
$a htmlentities($string1);
        
        
$b html_entity_decode($a);
        
        echo 
$a;
        echo 
"<hr>";
        echo 
"<hr>";
        echo 
$b
En este PHP el echo de $a devuelve el HTML como texto plano y el echo de $b como texto con formato.

La variable que pongo aquí, $string1, sólo es de ejemplo, y el htmlentities funciona a la perfección con ella. Pero NO me funciona con otra variable, que es con la que tengo el problema.

No puedo poner la variable aquí porque realmente es enorme, tiene poco más de 1,600 líneas de HTML.

Ya hice la prueba reduciendo el tamaño en líneas de la variable y resulta que sí me funciona el htmlentities con unas pocas líneas, unas 20, pero no con 1,600.

¿La bronca estará en eso precisamente, en que el htmlentities soporta sólo un número determinado de líneas, menor a 1,600? ¿O la bronca estará en otro lado?

Saludos
  #4 (permalink)  
Antiguo 15/10/2013, 17:39
Avatar de berkeleyPunk  
Fecha de Ingreso: febrero-2013
Ubicación: México :C
Mensajes: 565
Antigüedad: 11 años, 9 meses
Puntos: 22
Respuesta: ¿Cómo asignar HTML como texto plano a un textarea mediante PHP?

El maestro pateketrueke me recomendó usar una función determinada para resolver mi bronca: htmlentities().

Esta función definitivamente hizo lo que esperaba.

Lamentablemente había un problema con la variable que contenía el HTML que yo quería guardar como texto plano. Qué problema? No sé. Así que me di a la tarea de reescribir de cero todo el HTML, era una tabla de más de 1,600 líneas. Lo hice así y la reescritura funcionó.

Ahora puedo leer perfectamente la variable sin problema y leer su contenido, HTML, como texto plano con la función recomendada por pateketrueke.

Gracias y hasta luego.

Etiquetas: Ninguno
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:07.