Preserve saltos de línea de TextArea al escribir en MySQL

Estoy usando un área de texto para permitir a los usuarios ingresar comentarios. Sin embargo, si los usuarios ingresan nuevas líneas, las nuevas líneas no aparecen cuando se generan. ¿Hay alguna manera de hacer que los saltos de línea se mantengan?

¿Alguna idea de cómo preservar los saltos de línea?

Dos soluciones para esto:

  1. Función de PHP nl2br() :

    p.ej,

     echo nl2br("This\r\nis\n\ra\nstring\r"); // will output This
    is
    a
    string
  2. Envuelva la entrada en

    
    

    tags

    
    

    .

    Ver: W3C Wiki – HTML / Elementos / pre

Esto es lo que uso

 $textToStore = nl2br(htmlentities($inputText, ENT_QUOTES, 'UTF-8')); 

$inputText es el texto proporcionado por el formulario o textarea. $textToStore es el texto devuelto de nl2br y htmlentities , que se almacenará en su base de datos. ENT_QUOTES convertirá las comillas doble y simple, por lo que no tendrá problemas con ellas.

Tengo mi propia respuesta: el uso de esta función a partir de los datos del área de texto resuelve el problema:

 function mynl2br($text) { return strtr($text, array("\r\n" => '
', "\r" => '
', "\n" => '
')); }

Más aquí: http://php.net/nl2br

Estoy utilizando estos dos pasos de método para preservar el mismo texto que está en textarea para almacenar en mysql y en un momento de obtención también puedo simplemente mostrar texto sin formato …..

paso 1:

 $status=$_POST['status'];
$textToStore = nl2br(htmlentities($status, ENT_QUOTES, 'UTF-8'));

En la consulta, ingrese $textToStore ….

paso 2:

escribir código para seleccionar consulta … y valores de eco directo ….

Funciona

Esto funciona:

 function getBreakText($t) { return strtr($t, array('\\r\\n' => '
', '\\r' => '
', '\\n' => '
')); }

¿Por qué hacer es tan taaaan las personas cuando puede ser tan fácil 🙂

 //here is the pull from the form $your_form_text = $_POST['your_form_text']; //line 1 fixes the line breaks - line 2 the slashes $your_form_text = nl2br($your_form_text); $your_form_text = stripslashes($your_form_text); //email away $message = "Comments: $your_form_text"; mail("[email protected]", "Website Form Submission", $message, $headers); 

obviamente necesitará encabezados y probablemente tenga más campos, pero esta es su área de texto.