php - into - Preserve saltos de línea de TextArea al escribir en MySQL
select where mysql php (6)
¿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.
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:
Función de PHP
nl2br()
:p.ej,
echo nl2br("This/r/nis/n/ra/nstring/r"); // will output This<br /> is<br /> a<br /> string<br />
Envuelva la entrada en
<pre></pre>
etiquetas<pre></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.
Esto funciona:
function getBreakText($t) {
return strtr($t, array(''//r//n'' => ''<br>'', ''//r'' => ''<br>'', ''//n'' => ''<br>''));
}
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''];<br/>
$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
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" => ''<br />'', "/r" => ''<br />'', "/n" => ''<br />''));
}
Más aquí: http://php.net/nl2br