2011-04-30 16 views
19

Tengo un formulario textarea en mi html. Si el usuario acierta ingresa entre 2 oraciones, los datos deberían transferirse a mi PHP.Capturar nueva línea desde una entrada de texto texas

Actualmente si el usuario introduce:

Apple 
Google 
MS 

y mi código PHP es:

$str = $_POST["field"]; 

echo $str; 

me sale

Apple Google MS 

como la salida. Quiero que la salida sea así

Apple 
Google 
MS 

¿qué debo hacer?

Respuesta

38

Trate nl2br() lugar:

echo nl2br($str); 
+2

Aún mejor. No sabía que había una función incorporada dedicada a esto. – Thilo

3

Las líneas nuevas deben incluirse en la cadena que obtiene de $_POST["field"]. Sin embargo, si luego usa esa cadena como salida en HTML, las nuevas líneas se tratarán como espacios en blanco. Para forzar los saltos de línea, use preg_replace("/\n/", "<br />", $str).

+0

Eso preg se producirá un error (sin delimitador), también por qué no sólo 'str_replace()'? –

+0

Es cierto - solucionado eso. Y tu respuesta es mejor de todos modos. Sin embargo, explicar la causa puede ayudar a comprender mejor la solución. – Thilo

0

Esto es porque cuando se hacen eco de que está siendo representada como HTML. Un carácter \n se interpreta como un espacio. Si ves la fuente, verás tu resultado deseado.

Para convertir \n-<br> uso:

echo nl2br($str); 
Cuestiones relacionadas