+1

Removendo o código HTML em um parse

criado por Lucas Schirm Caixeta em 27/10/2010 10:29am
Bom dia pessoal, este é meu primeiro artigo para o PHPBrasil, vou fazer um bem simples, porém, dependendo da aceitação e a disponibilidade de tempo irei publicando mais artigos. Espero que gostem!

Muitas vezes precisamos fazer o parse em um HTML muito sujo e sem padrão algum, sendo assim acaba sendo mais fácil fazer o Parse quando eliminamos do conteúdo o HTML.

Para eliminar o código HTML utilizaremos uma função muito simples chamada strip_tags(), esta função recebe como parâmetro o conteúdo HTML e retorna um conteúdo de texto, respeitando as quebras e identação já existente, veja o exemplo:

<?php
$codigo = file_get_contents("http://www.phpbrasil.com/");
echo strip_tags($codigo);
?>

Com isso, em uma página com o HTML complexo e bagunçado conseguimos eliminar todo o lixo para fazer o parse de forma bem mais simples.

Bom, é isso, espero que agrade, em breve devo escrever mais, espero sugestões de temas, talvez continuar nesta linha de parse.

Comentários:

Mostrando 1 - 1 de 1 comentários
Lucas, com o módulo DOM, é possível varrer um HTML desordenado e até "concertá-lo". Se o objetivo principal é o parser, ele resolve bem. Afinal, com strip_tags você vai perder o valor de atributos, que talvez seja importante para o script.

Exemplo:
$arq_hqml_desordenado = '/caminho/ao/arquivo/html';
$conteudo_html_desordenado = file_get_contents($arq_html_desordenado);

$dom = new DomDocument();
$dom->loadHTML($conteudohtml_desordenado);

$dom->formatOutput = true;
$dom->recover = true;
$dom->strictErrorChecking = false;

// Obtendo o HTML reformatado
$conteudo_html_ordenado = $dom->saveHTML();
12/11/2010 10:53pm (~13 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)