Ringeril 0 Denunciar post Postado Junho 12, 2010 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 blablaFicaria: Teste, teste blabla teste blablaIsso eu já não sei como fazer.Abraço e obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Junho 13, 2010 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
Ringeril 0 Denunciar post Postado Junho 13, 2010 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 4Poré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 4Vê 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
João Batista Neto 448 Denunciar post Postado Junho 14, 2010 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
Ringeril 0 Denunciar post Postado Junho 14, 2010 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