Fórum Como manipular ocorrências de br e hr #564433

21/10/2016

0

PHP

Opa pessoal. Estou com uma dúvida, como posso substituir a ocorrência de algumas tags numa determinada condição.

No caso, eu preciso substituir a ocorrência das tags br e hr caso elas ocorram mais de duas vezes. Por exmeplo:

<div>
	<p>
		Texto 1
		<br />
		<br />
		Texto 2
		<br />
		<br />
		<br />
		Texto 3
		<hr />
		<hr />
		Texto 4		
	</p>
</div>


Eu preciso fazer um tratamento no código em que preciso resolver a seguinte situação. Caso no conteúdo desse parágrafo tenha a ocorrência de mais de 2 br, eu devo substituir por 2 br. E se houver a ocorrência de mais de um hr, devo substituir por um só.

Como posso fazer isso?

No exemplo acima. as alterações que deveriam ser feitas com a função é transformar os 3 br abaixo do texto 2 em um br só, e os dois hr embaixo do texto 3 em um hr só.

Preciso disso no php
Calebe Menezes

Calebe Menezes

Responder

Posts

11/07/2017

Fernando Gaspar

Fala Calebe, beleza brother?

Então pra fazer isso você precisar utilizar a função preg_replace do PHP, ela realiza uma pesquisa por uma expressão regular e a substitui,
a expressão deve ficar mais ou menos assim:

((<\\s*?br\\s*?\\/?>)+\\s*){2,}

essa expressão pega todas possíveis formas de escrita com espaço, com barra, espaço entre os elementos e etc, porem só acima de duas ocorrências.


O código PHP algo assim:

<?php
$texto= "Todo o seu<br>texto com mais de <br><br/> 2 quebra de linhas";
$expressao = "((<\\s*?br\\s*?\\/?>)+\\s*){2,}";
$novotexto = "<br>";

echo preg_replace($expressao , $novotexto , $texto);
?>

Espero ter ajudado abraços!
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar