Usando preg_replace() para remover uma tag HTML

A função preg_replace() permite substituir sequências baseadas em expressões regulares.

Na imagem abaixo percebemos um espaço exagerado entre o título e o texto.

Vamos analisar o texto…
logo após as tags </h1> e </h2> temos uma tag <br /> que poder ser removida; com isso o texto ficará mais próximo do título.

$texto = "<h1>Linha de Comando</h1><br />
<br />
<p>Website completo com dicas de programação em PHP, JavaScript, CSS, HTML5 e muito mais.</p>
<br />
<h2>Categorias</h2><br />
<br />
<p>PHP</p>
<p>JQuery</p>
<p>CSS</p>";

Poderíamos utilizar a função str_replace(), porém teríamos que usá-la várias vezes caso o seu texto tivesse todas as tags Hn.

str_replace("</h1><br />", "</h1>", $texto)
str_replace("</h2><br />", "</h2>", $texto)

Vamos a uma solução mais simples, que removerá a tag <br /> de todos os Hn do texto.

$novo_texto = preg_replace("/(<\/h[1-6]>)(<br \/>)/", "$1", $texto);

O $1 refere-se ao primeiro grupo da expressão que é definido quando está dentro dos parenteses.

Resultado:

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *