Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ringeril

[Resolvido] Cortar linhas duplas ou mais

Recommended Posts

Fala pessoal, tranquilo?

Estou aqui com um sistema de artigos com comentários, pois bem, o comentário está setado para no máximo 1000 caractéres.

Agora quero retirar do comentário todos os ENTER's que o usuário der, as linhas, e colocar só um no lugar. Por exemplo:

Comentário:

Teste, teste blabla




teste blabla
Ficaria:

Teste, teste blabla

teste blabla
Isso eu já não sei como fazer.

Abraço e obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Da uma pesquisada sobre preg_replace

 

e no fórum pois já vi duvidas em relação a isso e que já foram resolvidos, só não me lembro do link senão postava aqui pra você!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá WDuarte,

Consegui fazer da seguinte maneira:

$str = '1

2





3
4';
preg_replace('/(\r|\n|\r\n){1,}/', '<br/>', $str);
O retorno:

1
2
3
4
Porém do 1 para o 2 ele não abusa da quebra de linha, é so um parágrafro.

Queria que ele retorna-se o seguinte:

1

2

3
4
Vê a diferença? Do 1 para o 2 é so um paragrafo, nada muda. Do 2 para o 3 retira as quebras de linhas abusivas. E do 3 para o 4 nada muda.

Como faço isso?

 

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

preg_replace('/(\r|\n|\r\n){1,}/', '<br/>', $str);

Porém do 1 para o 2 ele não abusa da quebra de linha, é so um parágrafro.

 

Amigo, preste atenção à expressão regular, você diz: Substitua qualquer tipo de quebra de linha, que repete-se 1 ou mais vezes por <br/>

 

Você quer: Substitua qualquer tipo de quebra de linha, que repete-se 2 ou mais vezes...

 

Então, basta modificar sua ER por:

 

 preg_replace('/(\r|\n|\r\n){2,}/', '<br/>', $str); 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá João Batista Neto,

após sua explicação quase consegui, porém ainda não retornava o que eu desejava.

Por isso fiz da seguinte maneira:

// Substitui espaços em excesso para parágrafos
$str = preg_replace('/(\r|\n|\r\n){3,}/', '<br/><br/>', $str);
// Substitui o resto por quebra de linha
$str = preg_replace('/(\r|\n|\r\n){2,}/', '<br/>', $str);
Agora sim fiquou do jeito desejado.

 

Abraço e obrigado a todos.

Pode fechar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.