Remover quebras de linha se forem mais de 2 <br>

  • Autor Autor WWWW
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
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.
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
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.
 
Voltar
Topo