Foros del Web » Programando para Internet » PHP »

Pasar texto con saltos de linea

Estas en el tema de Pasar texto con saltos de linea en el foro de PHP en Foros del Web. Si el metodo POST de un formulario envia el contenido del texto de un "textarea", luego al recoger la variable y volver a poner el ...
  #1 (permalink)  
Antiguo 08/04/2003, 14:15
 
Fecha de Ingreso: febrero-2003
Mensajes: 204
Antigüedad: 21 años, 9 meses
Puntos: 2
Pasar texto con saltos de linea

Si el metodo POST de un formulario envia el contenido del texto de un "textarea", luego al recoger la variable y volver a poner el texto, no me hace los cambios de linea (puntos y aparte) y me coloca todo en una linea continua.

Existe algun metodo para conseguirlo.
  #2 (permalink)  
Antiguo 08/04/2003, 14:23
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Aplica nl2br() a la variable que contenga el contenido de tu texarea .. Pero solo a la hora de presentar esa variables a HTML en tu navegador .. No guardes en tu BD o .txt ese dato aplicado nl2br() ...

Código PHP:
echo nl2br($variable_textarea); 
Eso sustituye los salto de líneas \n de tu textarea (q estan ahí pese que no los "veas") a salto de línea HTML q es <br> (bueno es <br /> por compatibilidad si usas XHTML)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 08/04/2003 a las 14:26
  #3 (permalink)  
Antiguo 08/04/2003, 14:34
Avatar de camargo  
Fecha de Ingreso: abril-2002
Ubicación: Kerétaro, Méjiko
Mensajes: 1.045
Antigüedad: 22 años, 7 meses
Puntos: 2
el codigo de cluster sirve para reproducir desde el $row ,,
pero si quieres enviar el <br> directo desde tu formulario de proceso a la BD o al txt,, usa este:

Código PHP:
$mensaje ereg_replace("\r\n","<br>"$mensaje); //aki cambiaremos los saltos de linea 
__________________
http://www.chorcha.com
  #4 (permalink)  
Antiguo 08/04/2003, 14:43
 
Fecha de Ingreso: febrero-2003
Mensajes: 204
Antigüedad: 21 años, 9 meses
Puntos: 2
Me fué de fabula la solución de Cluster.

Wuayyyyyyyyyyyy
  #5 (permalink)  
Antiguo 08/04/2003, 15:06
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Camargo .. fijate en el manual de PHP: (comentarios usuarios)

Cita:
[Editor's Note: Each major operating system uses a different character or set of characters to indicate the end of a line.

Macintosh: \r
Unix : \n
Windows : \r\n

The code below allows the line endings to be easily replaced with a br tag on any of the three major OSs.

[email protected]]

Well, there's some major issues with NewLine codes vs OS (win, linux, mac). Here is what I use : $s_data = ereg_replace("(\r\n|\n|\r)", "<br />", $s_data);
So far it worked great for me.
Greets, EiGHTRAKS
Y da igual donde lo uses ..

Cita:
el codigo de cluster sirve para reproducir desde el $row ,,
pero si quieres enviar el <br> directo desde tu formulario de proceso a la BD o al txt,, usa este:
sería lo mismo:
Código PHP:
$mensaje=nl2br($mensaje); 
Pruebalo y veras ..

Lo que hacia alusión es que guarde en la medída de lo posible sin "<br>" en su BD o txt .. eso "ahora" unos bytes en tu sistema de almacenamiento y sobre todo hace "portable" esos datos a cualquier dispositivo de salida (HTML, de un TXT por ejemplo a una BD . .etc etc ..).

Como todo en la vida lo que propongo tiene ese "pro" en contra de tiempo de proceso de PHP si vas a enviar esa "$variable" al navegador (a HTML) aplicando la función nl2br() (que ademas no usa el motor de expresiones regulares como ergi_replace() pues ya está integrada la función en el nucleo de PHP ..)


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 01/12/2006, 21:52
 
Fecha de Ingreso: septiembre-2006
Mensajes: 41
Antigüedad: 18 años, 2 meses
Puntos: 1
he entendido todo esto, pero tengo una duda, como aplico esto a un texto que ya está escrito en la base de datos?
  #7 (permalink)  
Antiguo 01/12/2006, 22:03
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 9 meses
Puntos: 535
$tu_fuente_de datos = $por_ejemplo_datos['tu_campo'];
echo nl2br($tu_fuente_de datos);
__________________
...___...
  #8 (permalink)  
Antiguo 11/12/2006, 20:32
 
Fecha de Ingreso: septiembre-2006
Mensajes: 41
Antigüedad: 18 años, 2 meses
Puntos: 1
Re: Pasar texto con saltos de linea

quizas no me expliqué bien, me refiero que si yo solamente escribo muchas líneas en el textarea sin presionar ENTER, por ejemplo aqui en el foro, automáticamente lo "corta" pero al imprimirlo en pantalla, lo tira en una sola línea. la pregunta sería: nl2br lo puedo aplicar aunque el usuario no haya presionado ENTER?
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:10.