Quitar saltos de línea si son más de 2 <br>

  • Autor Autor WWWW
  • Fecha de inicio Fecha de inicio
WWWW

WWWW

Pi
Verificación en dos pasos activada
Necesito borrar todos los saltos de linea después del segundo salto.

Bueno recibo el contenido de un textarea por POST, después utilizo la función nl2br(); para pasar los santos \n a <br/>.

Todo bien hasta aquí.

La cuestión es que si en el textarea se realizaron 5 saltos de linea, los mismo serán remplazados por <br/>, pero quisiera que si son más de 2, borrar los demás.

Ejemplo:

Código erróneo:

HTML:
hola
<br/>
<br/>
<br/>
como estas?
<br>
amigo

Remplazando los 3 <br/> por 2, igual si fueran 100 <br/> los remplazara por 2<br/>, y cuando sea solo 1 <br/> dejarlo así.

Código esperado:

HTML:
hola
<br/>
<br/>
como estas?
<br>
amigo

Buscando por la web, encontré que remplace todos los <br/> por solo 1 no importando cuantos hayan, pero lo que busco es que se respete el doble salto <br/><br/> si lo contiene la cadena.

Espero se entienda lo que quiero lograr y desde ya, gracias por su ayuda.
 
Puedes hacerlo con expresiones regulares.

Si el ejemplo que encontraste es con expresiones regulares, ese mismo lo puedes modificar para que haga lo que quieres.

preg_replace
 
Antes de pasarlo por el nl2br usa preg_replace asi:

PHP:
$tu_string = preg_replace("/\n{2,}/", "\n", $tu_string);
 
PHP:
$_POST['data'] = preg_replace("/(\r\n){3,}/", "\n\n", $_POST['data']);  
$_POST['data'] = nl2br($_POST['data']);
 
[MENTION=8317]lombervid[/MENTION] [MENTION=46425]Javieer[/MENTION] [MENTION=36180]hugo1[/MENTION]

Gracias por responder, todas sus respuestas son similares, pero la que si me funciono fue la de [MENTION=36180]hugo1[/MENTION], ya que había que remplazar los "\r\n" y con la expresión regular resuelve el problema que tenia, (borrar todos los saltos de linea, después de 2 saltos)

Ya que al parecer, son muy requeridas estas expresiones regulares, ya sea para validar el formato de un email o usarlo en un htaccess, etc.

Me preguntaba si, existe algún manual oficial o algo parecido para aprender expresiones regulares? Saludos.
 
Atrás
Arriba