Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Fala galera, tudo bom?
Bem, eu sou iniciante no PHP e não sei até aonde a linguagem se limita, por isso, pensie num sistema aqui e quero ver se ele é possível de ser realizado.
O sistema é o seguinte:
Eu quero que o meu sistema "analize" a página de um site, ou seja, ele vai procurar por ela algum valor menor que 100 por exemplo. Se tiver algum valor nessa página menor que 100 ele retornará uma mensagem para mim.
Lembrando que: Esse site que eu irei analizar não será meu, ou seja, eu não terei acesso a nenhum banco de dados, algum código, entre outros, apenas ao site normal.
E então, tem como fazer isso?
Valeu.
Eu andei fazendo umas pesquisas, e realmente tem como mesmo.
Ja consegui fazer o comecinho, mas, como fazer para procurar entre as TAGS?
Por exemplo, eu fiz isso:
<?php
$html = file_get_html('http://www.site.com.br');
$valor = $html->find('<tag></tag>');
if($valor < "100"){
echo "Certo";
}
?>
Eu fiz isso de ilustração, porque eu quero saber como pegar o valor que está dentro de determinas tags html.
Alguem sabe?
Você pode usar uma expressão regular para isso.
E ai, eu tambem nao sei muito de php, mas usei esse codigo que achei na internet e adaptei pra meu uso... veja só e fuça nele pra entender depois volte aqui e pergunte como buscar valores especificos como disse se nao conseguir sozinho, mas vou tentar explicar esse codigo ai pra vc...
> <?php
$url = $_GET['url'];
#---------------
$handle = fopen ($url, "rb");
$conteudo = "";
do {
$data = fread($handle, 2000);
if (strlen($data) == 0) {
break;}$conteudo .= $data;
} while(true);
fclose ($handle);
#------------------
$cont = substr($conteudo, strpos($conteudo, "taxonomy superior"));
$cont0 = substr($cont, strpos($cont, "title"));
$cont1 = substr($cont0,9,strpos($cont0, "</a>"));
$cont3 = str_replace("</a></li>", "", $cont1);
$cont3= htmlentities($cont3, ENT_QUOTES, "UTF-8");
$print cont3
?>
Onde esta url é o site onde pega o conteúdo... ele armazena tudo do site na variavel $conteudo, ai la na variavel cont eu pego tudo da variavel conteudo e mando copiar a partir de "taxonomy superior";
> $cont = substr($conteudo, strpos($conteudo, "taxonomy superior"));
copiar ate onde encontra "title"
$cont0 = substr($cont, strpos($cont, "title"));
sacou?
nas tres linhas abaixo a primeira eu faço igual, pegar ate onde encontra o /a, mas tirar 9 caracteres que ele deixou no inicio, na segunda, substitui alguns codigos dentro do texto que eu nao queria, e no ultimo apenas por problemas de acentuação...
> $cont1 = substr($cont0,9,strpos($cont0, "</a>"));
$cont3 = str_replace("</a></li>", "", $cont1);
$cont3= htmlentities($cont3, ENT_QUOTES, "UTF-8");
claro, não é o que vc pediu, mas veja se isso resolve pelo menos a parte de ler outro site pelo conteudo por enquanto... talvez com isso voce consiga alguma coisa.
Esse fórum tem como objetivo ajudar a quem quer se tornar programador e não colocar mais sobrinhos "nas ruas".
Se tiver disposto a entender e praticar eu te ajudo mas você pegando o código na internet não entendendo bulhufas do que esta acontecendo eu não vou mexer meu mindinho nesse tópico, é só um aviso pq ta varziado isso.
Não foi eu que pedi ajuda, só dei uma idéia do que funcionou pra mim, se ele quer 'aprender' a se tornar programador como voce disse eu dei a dica do que funciona, ou voce escrevendo 'tem' apenas acha que ajudou alguma coisa?
se quer aprender então vai a dica.
Você vai trabalhar com expressão regular como o amigo disse, quando tiver dando um "scan" na página você usa a função preg_match
a expressão regular usada é simples.
\(1[0]{2})
http://www.phpit.com.br/artigos/entendendo-as-expressoes-regulares.phpit
ela simplesmente vai procurar o número 100 em toda string passada no caso seria o html do site desejado.
você pode baixar o arquivo e usar o fopenpara abrir e ler
>
eu quero saber como pegar o valor que está dentro de determinas tags html.
Alguem sabe?
A melhor maneira, na minha opinião é utilizando DOMDocument e DOMXPath
Veja um exemplo básico.
$source = <<<HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<title>Minha primeira página CSS</title>
</head>
<body>
<h1>Minha primeira página</h1>
<p>Meu primeiro parágrafo</p>
<div>
<h2 id="message">Oi pessoal!</h2>
</div>
</body>
</html>
HTML;
$DOMDocument = new DOMDocument( '1.0', 'UTF-8' );
$DOMDocument->preserveWhiteSpace = false;
$DOMDocument->loadHTML( $source );
$DOMXPath = new DOMXPath( $DOMDocument );
$h2 = $DOMXPath->query( './/body/div/h2[@id="message"]' );
echo $h2->item( 0 )->nodeValue; // Oi pessoal!Galera, muito obrigado, por ora eu já consegui fazer o que eu precisava.
Só tenho uma pergunta, qual outro código posso utilizar para "atualizar" a página enquanto ainda não tiver encontrado o valor que eu procuro?
Eu criei um if, que se não achar o que eu procuro o resultado é esse:
<script>setTimeout(function(){
window.location.reload(1);
}, 40000);</script>
Queria saber como colocar um gif daquele "bolinha rodando", ou alguma outra coisa, e como não entendo muito dessa parte de Javascript espero que possam me ajudar só nesse finalzinho.
Obrigado.
Com relação a colocar um gif rodando você teria que fazer uma requisição assincona, e o redirecionamento pode ser feito com php mesmo.
tem