Alfa ex 0 Denunciar post Postado Junho 15, 2011 Olá a todos. Pessoal, fiz uma boa pesquisa mas ainda n consegui nada. o que eu preciso fazer é pegar uma parte de um site, e mostrar no meu. no site http://www.dcomercio.com.br/ já na entrada, existe uma galeria com slide onde embaixo está escrito 'dcultura' 'politica' 'cidades' etc. antes ele faziam por iframe, oque permitia que eu pegasse o iframe. mas hoje não utilizam mais. queria saber se tem como pegar aquela area apenas, para continuar mostrando no meu site, pq agora ta um erro lá rsrsrrsrsrs obrigado desde já Compartilhar este post Link para o post Compartilhar em outros sites
Kakashi_Hatake 267 Denunciar post Postado Junho 15, 2011 você pode usar cURL. <?php $endereco = 'http://forum.imasters.com.br/topic/436100-pegar-parte-de-site-e-mostrar-no-meu/'; $ch = curl_init( ); curl_setopt( $ch, CURLOPT_URL, $endereco ); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 ); curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, 0 ); $content = curl_exec( $ch ); curl_close( $ch ); preg_match( "/<title>(.*)<\/title>/i", $content, $matches ); var_dump( $matches[ 1 ] ); ?> Agora basta criar uma ER que "pege" o que você quer. Verifique no php.ini se a extensão php_curl.dll está abilitada, se não estiver remova o ';' e reinicie o servidor Compartilhar este post Link para o post Compartilhar em outros sites
Alfa ex 0 Denunciar post Postado Junho 15, 2011 cara, eu estava lendo sobre o cURL, mas ainda estava meio obscuro a compreensão, Valew mesmo, vou testar aque e já dou um toque se funcionou ------------------EDITADO-------------------------- bom, deu certo, deu pra retirar certas partes. Agora vou ter que sofrer com as expressões regulares. se quiser marcar o tópico como resolvido, fique a vontade, pois a dúvida de como ler o site já foi respondida. e se quiser me ajudar com isso eu agradeceria hehehehe. não faço ideia de como fazer o seguinte em expressão regular. lá tem varias divs <div um> /*ABRIR NESTA DIV*/ <div dois> <div tres> <div quatro> texto texto <div quatro> <div tres> <div dois> <div um> /*FEXAR NESTA DIV*/ não imagino como fazer pra ele pegar da <div id um> e fexar com sua tag correspondente. Compartilhar este post Link para o post Compartilhar em outros sites
Kakashi_Hatake 267 Denunciar post Postado Junho 15, 2011 Amigo, você vai ter que ser mais específico(encontrar o padrão), senão não tem como montar uma ER Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Junho 15, 2011 Graças a Deus inventaram o DOMDocument .! <!doctype html> <html> <head> <meta http-equiv="content-type" content="text/html;charset=iso-8859-1" /> </head> <body> <?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 ) ); echo utf8_decode( $DOMDocument->getElementsByTagName( 'title' )->item(0)->nodeValue ); ?> </body> </html> Saída: pegar parte de site, e mostrar no meu - iMasters Fóruns Você pode procurar por XPath, para achar elementos com atributos específicos no Documento. como por exemplo: <?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' ) ); ?> Saída: pegar,parte,site,mostrar,meu,Olá,todos,Pessoal,fiz,uma,boa,pesquisa,mas,ainda,consegui,nada,que,preciso,fazer Compartilhar este post Link para o post Compartilhar em outros sites
Alfa ex 0 Denunciar post Postado Junho 17, 2011 valeu fio, era exatamente o que eu precisava, valew ae andrey e carlos, podem flegar como resolvido. Compartilhar este post Link para o post Compartilhar em outros sites
Fabiano Lisboa 1 Denunciar post Postado Março 24, 2013 Olá, como ficaria esse código se eu quisesse pegar uma determinada div (class ou id), bastaria mudar getElementsByTagName para getelementsbyclas? Compartilhar este post Link para o post Compartilhar em outros sites
Tácio Andrade 0 Denunciar post Postado Dezembro 20, 2017 Pessoal desculpa ressuscitar esse post, porém estou montando um pequeno sisteminha pra automatizar umas tarefas que faço de geração de relatórios centralizados e no momento estou precisando pegar vários relatórios (tabelas HTML) de uma página e centraliza-los em um local só, porém até o momento não encontrei uma forma de pegar todas as tabelas html do site, mantendo as TAGs. Usando o código, consegui pegar apenas o conteúdo em texto da primeira tabela. <?php $WebSite = 'https://www.sistema.com.br/programas/relatorio1.html'; $DOMDocument = new DOMDocument( '1.0', 'utf-8' ); $DOMDocument->preserveWhiteSpace = false; @$DOMDocument->loadHTML( file_get_contents( $WebSite ) ); echo $DOMDocument->getElementsByTagName( 'table' )->item(0)->nodeValue ; ?> Fiz a alteração de 'table' para body, porém o conteúdo veio sem tags HTML nenhum e com um lixo que não preciso. Agradeço quem puder me ajudar nesse quesito. Compartilhar este post Link para o post Compartilhar em outros sites