Fórum Como manipular ocorrências de br e hr #564433
21/10/2016
0
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:
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
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
Curtir tópico
+ 0
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!
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
Clique aqui para fazer login e interagir na Comunidade :)