2011-06-14 15 views
15

Estoy usando un área de texto para enviar texto a mi base de datos.¿Cómo hacer eco de una entrada de un área de texto con saltos de línea?

Captura de pantalla de db:

enter image description here

Cuando estoy leyendo desde la base de datos que elimina los saltos de línea, ¿cómo puedo tener en $ fila [ 'opmerkingen']?

enter image description here

+0

posible duplicado de [Cómo eliminar saltos de línea (sin caracteres) de la cadena?] (Http://stackoverflow.com/questions/10757671/how-to-remove-line-breaks-no-characters-from -the-string) – kenorb

Respuesta

51

Cuando aparezca el texto, utilice nl2br() para convertir los saltos de línea a <br/> etiquetas, es decir, en lugar de <?php echo $row['text']; ?>, utilice <?php echo nl2br($row['text']); ?>.

De forma predeterminada, los navegadores muestran líneas nuevas como espacios, por lo tanto, deben convertirse a etiquetas <br/>.


Para aquellos que encuentran esto útil - por favor, considere el uso de white-space: pre-line, sugerida por Emil Vikström. Ya no soy un usuario de la red y no puedo verificar esto fácilmente, pero Boaz dice en sus comentarios que es compatible con todos los navegadores modernos. Si es así, debería preferirse usar nl2br().

17

Una alternativa a nl2br es hacer uso del atributo CSS white-space:

white-space: pre-line; 
+2

+1 IMHO 'nl2br()' * es * la alternativa. El estilo y el formateo deben manejarse solo con CSS, ahora que [todos los navegadores modernos admiten el valor 'preline' de la propiedad 'white-space'] (https://developer.mozilla.org/en-US/docs/ Web/CSS/espacio en blanco). – Boaz

3

pongo la siguiente manera, pero no trabajar con comillas simples.

echo $row['text'].'\n'; 

poner el comillas dobles. Entonces funcionó.

<textarea rows="10" cols="62" style="white-space: pre-line;" wrap="hard"> 
echo $row['text']."\n"; 
</textarea> 

Cuando la obtención de datos que está llegando con \ r \ n. Utilice también las comillas dobles allí.

Cuestiones relacionadas