… claro, com um pequeno atraso de 15 minutos. E ajuda do sempre útil simplexml, do PHP5. Segue:
<?php // author: Eziel Silva @list($self, $papel, $time, $tot) = $argv; if (!$papel) { echo sprintf('uso: %s <PAPEL> [temp][valor]%s', $self, "\n"); echo sprintf('PAPEL: VALE5%s', "\n"); echo sprintf('temp: tempo de atualizacao - default = 20%s', "\n"); echo sprintf('valor: quanto em papeis da empresa voce possui%s', "\n"); return 1; } $url = sprintf('http://www.bovespa.com.br/Cotacoes2000/formCotacoesMobile.asp?codsocemi=%s', $papel); $sXml = @simplexml_load_string(@file_get_contents($url)); if (!$sXml) { echo sprintf('Simbolo "%s" nao encontrado', $papel); return 1; } $format = "Hor: %s Osc.: %s%% Rend.: %s\n"; if (!$tot) { $format = "Hor: %s Osc.: %s%%\n"; } if (!$time) { $time = 20; } while(true) { $sXml = @simplexml_load_string(@file_get_contents($url)); if (!$sXml) { echo sprintf('Erro atualizando... aguardando 5s%s',"\n"); sleep(5); continue; } $c = $tot * str_replace(',','.', $sXml->PAPEL['OSCILACAO']) / 100; // hack pra me deixar feliz... caso esteja perdendo $$$, // descomente a linha abaixo //$c = $c * -1; echo sprintf($format, $sXml->PAPEL['HORA'], $sXml->PAPEL['OSCILACAO'], $c); sleep($time); }
$ php bov.php
uso: bov.php [temp][valor]
PAPEL: VALE5
temp: tempo de atualizacao – default = 20
valor: quanto em papeis da empresa voce possui$ php bov.php VALE5
Hor: 18:08:06 Osc.: -3,55%$ php bov.php VALE5 5 1000
Hor: 18:08:06 Osc.: -3,55% Rend.: -35.5
Arquivo:
bov.php
i am not able to pick up the language !
erro linha5
fato, nem tinha notado, faltou o argumento do sprintf. Deveria ser:
echo sprintf(‘Simbolo “%s” nao encontrado’, $papel);
estava a procura do link na bovespa, mas já que veio com código.. melhor ainda.
parabéns man, seu blog tá blz.
Magavilha! Com algumas modificações fiz funcionar maravilha.
Agora só falta um do dólar e estou feito.
Valeu aí, um grande abraço!