Giihh 6 Denunciar post Postado Agosto 1, 2015 Olá, estou utilizando o seguinte código para capturar conteúdo do site do banco central <?php $ch = curl_init(); $timeout = 0; curl_setopt($ch, CURLOPT_URL, 'http://www.bcb.gov.br/pt-br/paginas/default.aspx'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); $conteudo = curl_exec ($ch); echo $conteudo ; ?> Esta capturando toda a página e exibindo na pagina que quero no meu site, mas preciso somente do trecho abaixo da página, que é onde esta a tabelinha do cambio: <div class="block"> <h3>Câmbio</h3> <div class="tabela"> <table border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td width="33%" align="left" bgcolor="#f8f5f6"> <strong>Dólar EUA</strong> </td> <td valign="top" width="23%" align="left" bgcolor="#f8f5f6"> <strong> compra</strong> </td> <td valign="top" width="23%" align="left" bgcolor="#f8f5f6"> <strong> venda</strong> </td> </tr> <tr> <td width="33%" align="left" bgcolor="#f8f5f6"> 31/07 (PTAX) </td> <td width="23%" align="center" bgcolor="#f8f5f6"> 3,3934 </td> <td width="23%" align="center" bgcolor="#f8f5f6"> 3,3940 </td> </tr> <tr> <td width="33%" align="left" bgcolor="#f8f5f6"> 31/07<span><strong>–</strong></span>13:00 </td> <td width="23%" align="center" bgcolor="#f8f5f6"> 3,4080 </td> <td width="23%" align="center" bgcolor="#f8f5f6"> 3,4086 </td> </tr> <tr> <td width="33%" align="left"> <strong>euro</strong> </td> <td width="23%" align="center"> </td> <td width="23%" align="center"> </td> </tr> <tr> <td width="33%" align="left" bgcolor="#f8f5f6"> 31/07 (PTAX) </td> <td width="23%" align="center" bgcolor="#f8f5f6"> 3,7419 </td> <td width="23%" align="center" bgcolor="#f8f5f6"> 3,7429 </td> </tr> <tr> <td width="33%" align="left" bgcolor="#f8f5f6"> 31/07<span><strong>–</strong></span>13:00 </td> <td width="23%" align="center" bgcolor="#f8f5f6"> 3,7580 </td> <td width="23%" align="center" bgcolor="#f8f5f6"> 3,7590 </td> </tr> <tr> <td colspan="3" align="right" height="18"> <a href="/?TXCOTACAO"> mais moedas</a> </td> </tr> <tr><td colspan="3"></td></tr> <tr class=""> <td colspan="2" class="textoPeqColuna"> <strong>SML BRL/ARS</strong> </td> </tr> <tr class=""> <td class="textoPeqColuna" bgcolor="#f8f5f6"> 31/07 </td> <td colspan="2" class="textoPeqColuna" style="text-align: right;" bgcolor="#f8f5f6"> 0,36940<span class="espacoReduzido"></span> </td> </tr> <tr class=""> <td colspan="3" class="textoPeqColuna"> <strong>SML BRL/UYU</strong> </td> </tr> <tr class=""> <td class="textoPeqColuna" bgcolor="#f8f5f6"> 31/07 </td> <td colspan="2" class="textoPeqColuna" style="text-align: right;" bgcolor="#f8f5f6"> 0,11920<span class="espacoReduzido"></span> </td> </tr> <tr class=""> <td colspan="3" style="text-align: right; padding-bottom: 5px;"> <a title="ver histórico" href="/?SMLHIST"><span class="maisColunaEsq">ver histórico</span></a> </td> </tr> </tbody> </table> </div></div> Alguém poderia me ajudar a saber como delimitar o que será capturado? Agradeço ajuda Compartilhar este post Link para o post Compartilhar em outros sites
demonio 3 Denunciar post Postado Agosto 1, 2015 Conteúdo obtido em: http://forum.imasters.com.br/topic/436100-resolvidopegar-parte-de-site-e-mostrar-no-meu/ <?php $WebSite = 'http://forum.imasters.com.br/topic/436100-pegar-parte-de-site-e-mostrar-no-meu/'; $DOMDocument = new DOMDocument( '1.0', 'utf-8' ); $DOMDocument->preserveWhiteSpace = false; @$DOMDocument->loadHTML( file_get_contents( $WebSite ) ); $DOMXPath = new DOMXPath( $DOMDocument ); echo utf8_decode( $DOMXPath->query( './/meta[@name="keywords"]' )->item( 0 )->getAttribute( 'content' ) ); ?> Compartilhar este post Link para o post Compartilhar em outros sites
Giihh 6 Denunciar post Postado Agosto 1, 2015 Conteúdo obtido em: http://forum.imasters.com.br/topic/436100-resolvidopegar-parte-de-site-e-mostrar-no-meu/ <?php $WebSite = 'http://forum.imasters.com.br/topic/436100-pegar-parte-de-site-e-mostrar-no-meu/'; $DOMDocument = new DOMDocument( '1.0', 'utf-8' ); $DOMDocument->preserveWhiteSpace = false; @$DOMDocument->loadHTML( file_get_contents( $WebSite ) ); $DOMXPath = new DOMXPath( $DOMDocument ); echo utf8_decode( $DOMXPath->query( './/meta[@name="keywords"]' )->item( 0 )->getAttribute( 'content' ) ); ?> Obrigada, mas dessa forma não entendi esse trecho: query( './/meta[@name=keywords]' )->item( 0 )->getAttribute( 'content' ) Só entendi que o getAttribute( 'content' ) vai capturar o que tiver na tag content, se for isso mesmo e eu seguir essa lógica escolhendo a classe="block", a página tem muitos itens com essa classe ai não vai dar certo Compartilhar este post Link para o post Compartilhar em outros sites
Giihh 6 Denunciar post Postado Agosto 1, 2015 Por favor :D , sei bem pouco sobre expressões regulares, acabei de ver alguns videos na verdade. alguem sabe me dizer o que fazem essas duas expressão regulares? '/ORES-->(.+)<!--/s' './/meta[@name=keywords]' Compartilhar este post Link para o post Compartilhar em outros sites
demonio 3 Denunciar post Postado Agosto 6, 2015 bom, na linha: $DOMXPath->query( './/meta[@name="keywords"]' )->item( 0 )->getAttribute( 'content' ) ele vai buscar no site toda 'meta' que tiver o nome 'keywords' e capturar o 'content' dela exemplo: <meta name="keywords" content="Este é o conteúdo que o código vai capturar." /> Compartilhar este post Link para o post Compartilhar em outros sites