Foros del Web » Programando para Internet » PHP »

Detectar saltos de linea en una <textarea>?

Estas en el tema de Detectar saltos de linea en una <textarea>? en el foro de PHP en Foros del Web. Hola pues estoy creando un formulario de envio de correos electronicos y tengo una <textarea> en un formulario lo malo es que me eh dado ...
  #1 (permalink)  
Antiguo 30/11/2004, 20:21
Avatar de orochies  
Fecha de Ingreso: septiembre-2003
Ubicación: Guatemala
Mensajes: 259
Antigüedad: 14 años, 2 meses
Puntos: 2
Detectar saltos de linea en una <textarea>?

Hola pues estoy creando un formulario de envio de correos electronicos y tengo una <textarea> en un formulario lo malo es que me eh dado cuenta que al pasar el valor de my text area a las variables de mi script php para mostrarlo al usuario me eh dado cuenta que los saltos de linea que realizo en el textarea se pierden y solo veo texto de una sola line osea que no queda de como lo eh editado en el textarea...

Hay alguna forma de poder hacerlo como por ejemplo en este foro que al editar los post los mensajes quedan tal cual con saltos de linea segun los eh realizado...

espero vuestra ayuda gracias...

_Saludos...
__________________
QMD...
  #2 (permalink)  
Antiguo 30/11/2004, 20:54
Avatar de FuLaNo_  
Fecha de Ingreso: mayo-2003
Ubicación: Don Torcuato, Buenos Aires, Argentina
Mensajes: 1.250
Antigüedad: 14 años, 6 meses
Puntos: 2
Hola, en el script PHP has un replace de esto modo:

Código:
<?
$replace=$_POST[msg];
$replace=str_replace("\r","<br>",$replace);
?>
Esto es suponiendo que la variable del textarea es $MSG y lo envias con POST... luego donde se te envia el emial, cambia el $msg por $replace y listo.

Puedes agregar tantos replaces como quieras, por ejemplo:

Código:
$replace=str_replace("\r","<br>",$replace);
$replace=str_replace("+b+","<b>",$replace);
$replace=str_replace("+/b+","</b>",$replace);
$replace=str_replace("+u+","<u>",$replace);
$replace=str_replace("+/u+","</u>",$replace);
$replace=str_replace("+i+","<i>",$replace);
$replace=str_replace("+/i+","</i>",$replace);
Con esto puedes crearte los tags de BBcode...(cambia los ++ por [ y ], si los pongo me los replaza por formatos =P)

Saludos
__________________
I Love Programming...

Última edición por FuLaNo_; 30/11/2004 a las 20:57
  #3 (permalink)  
Antiguo 30/11/2004, 21:02
Avatar de orochies  
Fecha de Ingreso: septiembre-2003
Ubicación: Guatemala
Mensajes: 259
Antigüedad: 14 años, 2 meses
Puntos: 2
Gracias por tu pronta respuesta probare y os comento el resultado...

_Saludos...
__________________
QMD...
  #4 (permalink)  
Antiguo 30/11/2004, 21:24
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Bueno...
Te cuento que los saltos de línea sí están ahí... sólo que para el texto plano los saltos de línea se guardan como "\r"... en el código fuente del HTML generado se verán los saltos de línea... pero no se interpretarán en el navegador.... para eso deberás reemplazar esos saltos de línea "\r" por el tag "<br />" tal como te lo sugiere FuLaNo_.

Pero en tu caso específico, no es necesario hacer ese reemplazo "a mano" porque PHP ya provee una función que hace esa operación directamente.
$nuevoTexto = nl2br($viejoTexto);

Mira en el manual para más información:
http://www.php.net/nl2br

Saludos
  #5 (permalink)  
Antiguo 01/12/2004, 13:12
Avatar de FuLaNo_  
Fecha de Ingreso: mayo-2003
Ubicación: Don Torcuato, Buenos Aires, Argentina
Mensajes: 1.250
Antigüedad: 14 años, 6 meses
Puntos: 2
claro claro, es verdad.

PHP tiene varias funciones para tratar texto (y formatos) por lo que tendrás que leer sobre ello, como bien dice jpinedo.
__________________
I Love Programming...
  #6 (permalink)  
Antiguo 02/12/2004, 16:01
Avatar de orochies  
Fecha de Ingreso: septiembre-2003
Ubicación: Guatemala
Mensajes: 259
Antigüedad: 14 años, 2 meses
Puntos: 2
Gracias a todos por responder perfectamente entendido...

Sigo en la lucha por el PHP!!!

_Saludos...
__________________
QMD...
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 16:55.