Foros del Web » Programando para Internet » PHP »

Convertir los datos introducidos en Textarea en código HTML

Estas en el tema de Convertir los datos introducidos en Textarea en código HTML en el foro de PHP en Foros del Web. Hola a todos, Estoy creando un sencillo gestor de contenidos y para introducir estos contenidos estoy utilizando formularios con campos textarea. Si paso esto a ...
  #1 (permalink)  
Antiguo 29/11/2007, 12:25
 
Fecha de Ingreso: julio-2004
Ubicación: San Sebastián de los Reye
Mensajes: 140
Antigüedad: 19 años, 8 meses
Puntos: 2
Convertir los datos introducidos en Textarea en código HTML

Hola a todos,

Estoy creando un sencillo gestor de contenidos y para introducir estos contenidos estoy utilizando formularios con campos textarea. Si paso esto a la base de datos y luego hago que me lo muestre en la Web me aparece todo el código seguido, sin respetar los saltos de línea de demás.

Lo que quiero es que al pasar los datos a la base de datos me lo pase con código html, como hacen los textarea de los blogs, y viceversa, cuando recoja los datos de la base de datos y se los muestre al usuario en un texarea por si quiere modificar el contenido que me muestre el texto sin HTML.

Esto básicamente es lo que hace cualquier blog ¿sabéis como lo puedo hacer?
__________________
tecomweb.com - diseño y desarrollo Web
  #2 (permalink)  
Antiguo 29/11/2007, 13:45
Avatar de fermar21  
Fecha de Ingreso: marzo-2004
Ubicación: San Nicolas - Bs. As.
Mensajes: 294
Antigüedad: 20 años
Puntos: 0
Re: Convertir los datos introducidos en Textarea en código HTML

Hola,

Para usar HTML en un textarea lo recomendable es un editor html como el FCKEditor. Con él podras agregar texto en formato html (negrita, cursiva, color, etc...)

Si solo quieres poner un textarea y que tome los saltos de linea luego al mostrarlo en HTML, debes cambiar los "\n" (saltos de linea del textarea) por "<br />" (salto de linea en HTML) de la siguiente manera:

Código PHP:
$texto=$_POST["textarea"];
$texto=str_replace("\n","/<br />",$texto); 
Espero que te sirva,
Saludos
__________________
Fernando Marinzulich
Programador Web (PHP/MySQL/Jquery)
  #3 (permalink)  
Antiguo 29/11/2007, 15:42
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: Convertir los datos introducidos en Textarea en código HTML

Es mas util y rapido usar nl2br.

Saludos.
  #4 (permalink)  
Antiguo 30/11/2007, 07:37
 
Fecha de Ingreso: julio-2004
Ubicación: San Sebastián de los Reye
Mensajes: 140
Antigüedad: 19 años, 8 meses
Puntos: 2
Re: Convertir los datos introducidos en Textarea en código HTML

Lo que pasa es que quería evitar utilizar la etiqueta <BR /> y que el código HTML que genere fuera válido, me explico...

Quiero dar la posiblidad a los usuarios que en el textarea metan código HTML sencillo y entre este código sencillo estarían las listas y una lista creo que no se puede meter dentro de un párrafo.

Voy a poner un ejemplo:

Supongamos que en el textarea escribo lo siguiente:

Esto es una prueba
<ul>
<li>Opción 1</li>
<li>Opción 2</li>
<li>Opción 3</li>
<li>Opción 4</li>
</ul>
Fin de la prueba

El código correcto a generar sería

<p>Esto es una prueba</p>
<ul>
<li>Opción 1</li>
<li>Opción 2</li>
<li>Opción 3</li>
<li>Opción 4</li>
</ul>
<p>Fin de la prueba</p>

¿Puedo hacer esto con php?
__________________
tecomweb.com - diseño y desarrollo Web
  #5 (permalink)  
Antiguo 30/11/2007, 08:51
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: Convertir los datos introducidos en Textarea en código HTML

Para hacer eso no existe una función predefinida, por lo que tendrías que hacer un analizador léxico y checar linea por linea si no tiene una etiqueta HTML para agregarle el <p></p>.

Saludos.
  #6 (permalink)  
Antiguo 30/11/2007, 19:34
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: Convertir los datos introducidos en Textarea en código HTML

Do you know english?

Este link te podria ayudar, es una nota de usuario publicada en el manual de PHP para la función nl2br(), que te permite hacer lo que deseas:

http://www.php.net/manual/es/function.nl2br.php#62855

Un saludo,

Última edición por okram; 04/12/2007 a las 15:24
  #7 (permalink)  
Antiguo 04/12/2007, 14:24
 
Fecha de Ingreso: julio-2004
Ubicación: San Sebastián de los Reye
Mensajes: 140
Antigüedad: 19 años, 8 meses
Puntos: 2
Re: Convertir los datos introducidos en Textarea en código HTML

Muchas gracias Okram esto se parece a lo que yo quiero hacer. El código que han puesto ahí dudo que genere XHTML válido pero me ha servido para ver por donde hay que ir. Voy a intentar crear mi propia función basándome en la idea del enlaces que me has facilitado.
__________________
tecomweb.com - diseño y desarrollo Web
  #8 (permalink)  
Antiguo 05/12/2007, 13:42
 
Fecha de Ingreso: julio-2004
Ubicación: San Sebastián de los Reye
Mensajes: 140
Antigüedad: 19 años, 8 meses
Puntos: 2
Re: Convertir los datos introducidos en Textarea en código HTML

Soy incapaz de que me funcione. Tengo un textarea como os comentaba en una página cuyo nombre es contenido. Y el código que tengo es el siguiente:

$contenido=$_POST['contenido'];
$contenido=str_replace('\r\n', '<br />', $contenido);
$contenido=str_replace('<br /><br />', '</p><p>', $contenido);

Si escribo algo en el textarea con saltos de línea me lo muestra todo en la misma línea a pesar de este código. ¿Que puedo estar haciendo mal?
__________________
tecomweb.com - diseño y desarrollo Web
  #9 (permalink)  
Antiguo 07/12/2007, 06:24
 
Fecha de Ingreso: julio-2004
Ubicación: San Sebastián de los Reye
Mensajes: 140
Antigüedad: 19 años, 8 meses
Puntos: 2
Re: Convertir los datos introducidos en Textarea en código HTML

Ya he descubierto lo que estaba haciendo mal. Al parecer no se pueden utilizar comillas simples, he cambiado estas por comillas dobles y me ha funcionado correctamente.
__________________
tecomweb.com - diseño y desarrollo Web
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 19:19.