Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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:
Uma espécie de api simples. Eu tenho a ideia, mas me falta recurso para implantar em php.
>
1 - cURL/file_get_contents;
2 - file_put_contents;
3 - file_get_contents;
4 - wget -O- http://www.seusite.com.br/arquivo.php (0 0 *)
Obrigado pela dicas,
1- Eu sei, mas qual o site mais confiável hoje?
2- Não conheço, vou estudar
3- Conheço e posso usar curl
4- Conheço
Eu costumo usar o
Todas as vezes que comparei com a cotação do UOL o resultado era coincidente.
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");
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.
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?
<?php
$url = file_get_contents('http://dolarhoje.com/');
$dom = new DOMDocument();
$dom->loadHTML($url);
echo $dom->getElementById('nacional')->getAttribute('value');
?>Ual, cara, muito mais simples, show de bola.
Poderia fazer assim para cria uma string mais fácil:
$cotacao = $pega_tag->getAttribute('value');
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"
O id do campo se chama nacional, logo usando a mesma lógica do JS getElementById...
pessoal vcs sabem algum lugar que posso estudar sobre PEGAR CONTEÙDOS DE OUTROS SITES, mais detalhadamente, sou iniciante nessa parte