Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   PHP (http://www.forosdelweb.com/f18/)
-   -   Pasar texto con saltos de linea (http://www.forosdelweb.com/f18/pasar-texto-con-saltos-linea-124759/)

antirco 08/04/2003 14:15

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.

Cluster 08/04/2003 14:23

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,

camargo 08/04/2003 14:34

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 


antirco 08/04/2003 14:43

Me fué de fabula la solución de Cluster.

Wuayyyyyyyyyyyy

Cluster 08/04/2003 15:06

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,

senseijulio 01/12/2006 21:52

he entendido todo esto, pero tengo una duda, como aplico esto a un texto que ya está escrito en la base de datos?

AlZuwaga 01/12/2006 22:03

$tu_fuente_de datos = $por_ejemplo_datos['tu_campo'];
echo nl2br($tu_fuente_de datos);

senseijulio 11/12/2006 20:32

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?


La zona horaria es GMT -6. Ahora son las 05:39.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.