Foros del Web » Programando para Internet » PHP »

Mostrar texto almacenado en la base de datos y que reconozca cambios de linea

Estas en el tema de Mostrar texto almacenado en la base de datos y que reconozca cambios de linea en el foro de PHP en Foros del Web. Hola, Estoy creando la seccion artistas de mi web, y en la base de datos que estoy creando almacenaré la biografia de cada artista colaborador ...
  #1 (permalink)  
Antiguo 07/02/2006, 02:59
MindPaniC
Invitado
 
Mensajes: n/a
Puntos:
Exclamación Mostrar texto almacenado en la base de datos y que reconozca cambios de linea

Hola,

Estoy creando la seccion artistas de mi web, y en la base de datos que estoy creando almacenaré la biografia de cada artista colaborador en un campo de texto simple, otro campo para una foto, y un par de campos más para otros datos de interes.

pues bien la cuestión es que al mostrar los datos de la tabla el campo que contiene el texto (biografia) muestra el texto sin espacios y sin cambios de linea, y me gustaria saber como puedo o debo hacer para que el texto que yo suba a la base de datos guarde el formato adecuado y respete y conseve los cambios de linea y los parrafos.

Principalmente me parece un engorro tener que andar poniendo a mano los cambios de linea <br /> o los parrafos <p>.

¿cual es la mejor solución?

saludos
  #2 (permalink)  
Antiguo 07/02/2006, 04:02
Avatar de nosoynadie  
Fecha de Ingreso: noviembre-2005
Ubicación: dando vueltas por aquí
Mensajes: 206
Antigüedad: 18 años, 5 meses
Puntos: 1
hola MindPaniC,

prueba usando la función nl2br que trae el PHP, te puede ser útil
__________________
http://www.nosoynadie.net/
  #3 (permalink)  
Antiguo 07/02/2006, 05:02
MindPaniC
Invitado
 
Mensajes: n/a
Puntos:
mmmm interesante, he estado leyendo sobre el nl2br

basicamente hace esto:
Código PHP:
<?php
echo nl2br("esto es una\nprueba");
?>
y muestra esto:
Código HTML:
esto es una<br />
prueba
Lo que me intriga es como hago para que al subir texto desde un formulario automáticamente me guarde los saltos de linea "\n" y otras alteraciones del texto con etiquetas xhtml. ¿como aplico el nl2br en la subida de datos a la base de datos?

saludos
  #4 (permalink)  
Antiguo 07/02/2006, 05:09
Avatar de MarioNunes  
Fecha de Ingreso: agosto-2005
Mensajes: 280
Antigüedad: 18 años, 8 meses
Puntos: 1
Buenas,

A ver si puedo ayudar...

http://es.php.net/manual/es/function.chr.php

creo que chr(13) es el salto de linea :)

http://www.lookuptables.com/

Aunque también he encontrado esto en las FAQ.

http://www.forosdelweb.com/showpost....0&postcount=11


Un saludo.
__________________
www.pensandoenred.com

Última edición por MarioNunes; 07/02/2006 a las 05:20
  #5 (permalink)  
Antiguo 07/02/2006, 05:30
Avatar de nosoynadie  
Fecha de Ingreso: noviembre-2005
Ubicación: dando vueltas por aquí
Mensajes: 206
Antigüedad: 18 años, 5 meses
Puntos: 1
Hola,
creo que a la hora de guardar la información introducida desde el formulario no has de hacerla nada para que te guarde los saltos de línea, has de usar el nl2br() a la hora de mostrarlo.

Mira este ejemplo:
Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>textarea</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<?php
if(isset($_POST["texto"])){
	echo nl2br($_POST["texto"]);
}
?>
<form name='frmPrueba' action='textarea.php' method='post'>
	<textarea name='texto' cols='30' rows='10'></textarea>
	<br /><input type='submit' name='Enviar' value='enviar' />
</form>
</body>
</html> 
Creo que si en lugar de tener $_POST[] tuvieramos los datos traidos de la base de datos no debiera haber diferencia. Ahora mismo no tengo tiempo para mirartelo pero lo dejo en tus manos
__________________
http://www.nosoynadie.net/
  #6 (permalink)  
Antiguo 07/02/2006, 16:59
MindPaniC
Invitado
 
Mensajes: n/a
Puntos:
Si señor funciona, muchiiisimas gracias.

saludos
  #7 (permalink)  
Antiguo 02/05/2006, 15:56
Avatar de rafaconpu  
Fecha de Ingreso: febrero-2006
Mensajes: 331
Antigüedad: 18 años, 2 meses
Puntos: 3
Ir un paso más allá

Hola.

Efectivamente, cuando estás registrando el dato, vas escribiendo y le das al intro cuando lo consideres oportuno.

A la hora de mostrar el texto utilizas la función nl2br($variable); y de esa forma te respeta los saltos de línea.

Pero.... ¿Y hay alguna función o manera de indicarle que resalte en negrita alguna parte del texto? ¿Cómo se podría hacer esto?

Gracias.
  #8 (permalink)  
Antiguo 03/05/2006, 01:13
Avatar de nosoynadie  
Fecha de Ingreso: noviembre-2005
Ubicación: dando vueltas por aquí
Mensajes: 206
Antigüedad: 18 años, 5 meses
Puntos: 1
Hola,
el mejor modo de hacerlo que se me ocurre es utilizando expresiones regulares. En la ayuda de la función preg_match_all hay un ejemplo 'parecido' a lo que pides tú. Ánimo y enreda con ellas
__________________
http://www.nosoynadie.net/
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 23:54.