Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ola pessoal estou quebrando a cabeça aqui e nao sei como resolver..
Um cliente que dou suporte na sua rede tem um sistema (intranet) para monitorar o clima da sua estufa, esse sistema mostra varias imagens como temperatura, umidade, vento.... e por ai vai..
Ele quer que eu faça uma pagina para mostrar somente as imagens da temperatura da estufa, tipo um filtro das imagens.
Eu usei esse codigo:
pagina: index2.php
<?php$link = "/syscologic1000/estufa/index.php";$input = @file_get_contents($link) or die ('Erro!');$pegou = explode("<span class=\"share-img-temp\"", $input); //esta funcionando ok (pega a 1 foto)$pos1 = strpos($pegou[1],"src=\"");$pos1 += 5;$pos2 = strpos($pegou[1],"\"",$pos1) - $pos1;$imgTemp = "<img src=\"".substr($pegou[1],$pos1,$pos2)."\">";echo $imgTemp;?>
Ele abre o site procura a class "share-img-temp" e pega a foto dela e mostra na tela..
O problema é que, ele so pega a 1 imagem e nao continua verificando a pagina para mostrar as demais...
Ja tentei usar for e o while mas nao sei como fazer.
Alguem pode me dar uma luz ai..
Obrigado.
Ola.
Vi os exemplos e vi que nao era a melhor saida, acabei encontrando um codigo que me parece melhor..
<?php
$xpath = new DOMXPath($doc);
$tmp = $xpath->query('//img[contains(@class,"share-img-temp")]');
foreach ($tmp as $value) {
echo 'Foto:', $value->nodeValue, '<br>';
}
?>
O problema que ele nao esta puxxando a img, o que pode ser?
Deu certo, troquei por isso:
<?php
$xpath = new DOMXPath($doc);
$tmp = $xpath->query('//img[contains(@class,"share-img-temp")]');
foreach ($tmp as $value) {
echo 'Imagem:<br><img src=', $value->getAttribute('src'), '><br>';
}
?>
Fonte: http://pt.stackoverflow.com/questions/72737/erro-ao-obter-conteudo-de-site-externo
Estava patinando, obrigado pelo "norte"..
Acabei de descobrir um problema..
Como o sistema mostra muita imagem ele nao printa todas na tela de uma unica vez, ele vai mostrando conforme voce vai descendo a pagina, com isso, eu so pego 5 iniciais.
Como faço pra ele forçar a pagina carregar 100% e pegar todas as imagens?
Obrigado.
Use DomDocument ou Expressões Regulares, com preg_match_all(), para fazer o parse do HTML
Tópicos semelhantes:
http://forum.imasters.com.br/topic/536345-script-de-monitoramento-de-pagina/
http://forum.imasters.com.br/topic/537991-pegar-conteudo-da-string-entre-tags/