Remover atributos de tags HTML via expressão regular/PHP
Depois de muuuuito tempo, volto a postar no meu velho blog.
Li uma dúvida da lista de discussão PHP-SP do Yahoo e resolvi escrever este post.
Vejam a dúvida:
Pessoal,
Gostaria de saber se alguém aqui conhece uma forma de limpar os atributos da tags html.
Ex : Tenho essa div abaixo onde ela tá dentro de um conteudo preciso varrer esse conteudo e sair procurando todas as div’s que tenha atributos e tirar seus atributos.
Antes: <DIV style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY:Verdana">
Depois : <DIV>
Ob.: Já procurei no manual do PHP e achei essa função aqui strip_tags só que a mesma funciona pra tirar todas as tags html que tiver no texto.
Desde já agradeço pela ajuda.
Proponho fazer com que o seguinte código:
<div id="divId" class="class1 class2" width="50%" title="only test">
<form name="formName" method="POST" action="lala.php">
<fieldset id="fldId">
<legend></legend>
<label for="campo1">
<span>Campo 1</span>
<input type="text" name="campo1" id="campo1" class="text" maxlength="10" size="12" />
</label>
<br />
<label for=campo2>
<span class=ispam >Campo 2</span>
<input type='text' name="campo2" id="campo2" class="text" maxlength=10 size=12 />
</label>
</fildedset>
</form>
</div>
Fique assim:
<div>
<form>
<fieldset>
<legend></legend>
<label>
<span>Campo 1</span>
<input/>
</label>
<br/>
<label>
<span>Campo 2</span>
<input/>
</label>
</fildedset>
</form>
</div>
Código PHP:
<?php
$htmlCode = <<<SAN
<div id="divId" class="class1 class2" width="50%" title="only test">
<form name="formName" method="POST" action="lala.php">
<fieldset id="fldId">
<legend></legend>
<label for="campo1">
<span>Campo 1</span>
<input type="text" name="campo1" id="campo1" class="text" maxlength="10" size="12" />
</label>
<br />
<label for=campo2>
<span class=ispam >Campo 2</span>
<input type='text' name="campo2" id="campo2" class="text" maxlength=10 size=12 />
</label>
</fildedset>
</form>
</div>
SAN;
$regx = <<<REGX
/(<\w+)([=\w'"%\.\s])*(\/?>)/
REGX;
$x = preg_replace($regx, '$1$3', $htmlCode);
print <<<CODE
$htmlCode
$x
CODE;
?>
Testem o código e comentem possíveis bugs.
Espero ter ajudado