php - saltos - Capturar caracteres linebreaks(línea nueva, salto de línea) en un área de texto
nl2br php (4)
Tengo un formulario con un <textarea> y quiero capturar cualquier salto de línea en ese área de texto en el lado del servidor, y reemplazarlos por un <br/> .
¿Es eso posible?
Intenté configurar white-space:pre en el CSS de la textarea , pero aún no es suficiente.
La función nl2br() existe para hacer exactamente esto:
Sin embargo, esta función agrega etiquetas br pero en realidad no elimina las nuevas líneas; por lo general, esto no es un problema, pero si desea quitarlas por completo y capturar retornos de carro también, debe usar str_replace o preg_replace
Creo que str_replace sería un poco más rápido pero no he comparado;
$val = str_replace( array("/n","/r","/r/n"), ''<br />'', $val );
o
$val = preg_replace( "#/n|/r|/r/n#", ''<br />'', $val );
Si va a usar str_replace o preg_replace , probablemente debería colocar "/r/n" al comienzo de la matriz, de lo contrario, una secuencia /r/n se traducirá en dos etiquetas <br/> (ya que /r se emparejarán, y luego /n se combinarán).
p.ej:
$val = str_replace( array("/r/n", "/n","/r"), ''<br />'', $val );
o
$val = preg_replace( "#/r/n|/n|/r#", ''<br />'', $val );
Eche un vistazo a la función nl2br() . Debería hacer exactamente lo que quieres.
Para aquellos que quieran una respuesta que no dependa de nl2br() :
$newList = ereg_replace( "/n",''|'', $_POST[''theTextareaContents'']);
o (en este caso):
$newList = ereg_replace( "/n",''<br/>'', $_POST[''theTextareaContents'']);
Lado PHP: de la cadena Textarea a la cadena PHP
$newList = ereg_replace( "/n",''|'', $_POST[''theTextareaContents'']);
Lado de PHP: la cadena de PHP vuelve a la cadena TextArea:
$list = str_replace(''|'', '' '', $r[''db_field_name'']);