Ir para conteúdo

Arquivado

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

Antonio Jorge

Ajuda para criar esse projeto de cotação

Recommended Posts

Pessoal como eu posso fazer com php para criar um arquivo que pegue a cotação de algum lugar, sei que tem vários métodos aqui mesmo, muitos não funcionam mais. E depois fazer isso:

 

  1. Pegar a cotação
  2. Gravar em um txt no servidor
  3. E um arquivo que leia o txt e mostre a cotação
  4. E o arquivo que grava em txt aceite ser rodado pelo cron, assim faz a solicitação apenas 1 vez por dia (evitando ser bloqueado)

Uma espécie de api simples. Eu tenho a ideia, mas me falta recurso para implantar em php.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Legal, consegui, veja se tem como melhorar

<?php
$agent = $_SERVER['HTTP_USER_AGENT'];
$url =  'http://dolarhoje.com/' ; 
$curl = curl_init (); 
curl_setopt ( $curl , CURLOPT_URL , $url ); 
curl_setopt ( $curl , CURLOPT_RETURNTRANSFER ,  true ); 
curl_setopt ( $curl , CURLOPT_USERAGENT, $agent);
curl_setopt ( $curl , CURLOPT_HEADER ,  false ); 
$data = curl_exec ( $curl ); 
curl_close ( $curl );

$inicio = explode( '<input type="text" id="nacional" value="' , $data);
$fim = explode('"/>' , $inicio[1] );

//echo $fim[0];

file_put_contents("cotacao.txt", $fim[0]);

echo file_get_contents("cotacao.txt");

Deixei o file_get_contents("cotacao.txt") só para testar a leitura.

Aqui gravou o txt e já imprimi com o comando echo file_get_contents("cotacao.txt");

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não faz sentido usar o put_contents e logo abaixo o get_contents... neste caso basta usar o $fim['0'] para exibir o resultado.

 

O seu script é funcional, eu não usaria o explode, preferiria domdocument ou expressão regular, mas é só questão de semântica isto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rsrsrs eu sei, não vai usado assim, só coloquei assim para ter a ideia que tudo funcionou, a ideia é usar o arquivo com curl para o cron e depois poder usar o txt via file_get_content, mas tudo separado.

 

Eu gostaria de aprender mais sobre o dom, mas nunca consegui entender, direito, teria como me dá um exemplo no meu código com usando o domdocument?

Compartilhar este post


Link para o post
Compartilhar em outros sites


<?php

$url = file_get_contents('http://dolarhoje.com/');

 

$dom = new DOMDocument();

 

$dom->loadHTML($url);

 

echo $dom->getElementById('nacional')->getAttribute('value');

?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já deu certo.

Vou estudar como fez isso com o dom, dei um var_dump para tentar entender melhor piorou kkk

object(DOMElement)#2 (17) { ["tagName"]=> string(5) "input" ["schemaTypeInfo"]=> NULL ["nodeName"]=> string(5) "input" ["nodeValue"]=> string(0) "" ["nodeType"]=> int(1) ["parentNode"]=> string(22) "(object value omitted)" ["childNodes"]=> string(22) "(object value omitted)" ["firstChild"]=> NULL ["lastChild"]=> NULL ["previousSibling"]=> string(22) "(object value omitted)" ["attributes"]=> string(22) "(object value omitted)" ["ownerDocument"]=> string(22) "(object value omitted)" ["namespaceURI"]=> NULL ["prefix"]=> string(0) "" ["localName"]=> string(5) "input" ["baseURI"]=> NULL ["textContent"]=> string(0) "" }

Como tirou um simples resultado setando apenas "nacional"

Compartilhar este post


Link para o post
Compartilhar em outros sites

O id do campo se chama nacional, logo usando a mesma lógica do JS getElementById...

Compartilhar este post


Link para o post
Compartilhar em outros sites

pessoal vcs sabem algum lugar que posso estudar sobre PEGAR CONTEÙDOS DE OUTROS SITES, mais detalhadamente, sou iniciante nessa parte 

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.