Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Marcelo N. Sousa

[Resolvido] Ler HTML com PHP

Recommended Posts

Preciso ler um pagina HTML e retirar algumas informações.

O meu problema é em ler uma div por exemplo com class "titulo" e acessar o que esta dentro dessa div, alguém tem uma ideia?

<?php
 // new dom object
 $dom = new DOMDocument();

 //load the html
$oldSetting = libxml_use_internal_errors( true );
libxml_clear_errors();
 $html = $dom->loadHTMLFile('http://site/');

 //discard white space 
 $dom->preserveWhiteSpace = false; 

 //the table by its tag name
 $tables = $dom->getElementsByTagName('table'); 

 //get all rows from the table
 $rows = $tables->item(0)->getElementsByTagName('tr'); 
 // loop over the table rows
 foreach ($rows as $row) 
 { 
  // get each column by tag name
     $cols = $row->getElementsByTagName('td'); 
  // echo the values  

   } 
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

DOMDocumment::getElementsByTagName() retorna um DOMNodeList para você iterar se houver mais de uma ocorrência ou acessar o índice manualmente se souber qual precisa, da mesma forma que fez na variável $rows fora do foreach.

 

Utilizando um for-loop baseando-se na propriedade pública length fica mais legível. E, dentro do laço, você acessa o valor através da propriedade DOMNode::nodeValue:

 

// ...

foreach( $rows as $row ) {

   $cols = $row -> getElementsByTagName( 'td' );

   for( $i = 0; $i < $cols -> length; $i += 1 ) {

       printf( '%s<br />', $cols -> item( $i ) -> nodeValue );
   }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.