Rapidinha: Obter cotação da bolsa de valores em tempo real …

19 11 2007

… 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


Ações

Informações

5 respostas

9 12 2007
Custom SLA Programming

i am not able to pick up the language !

29 01 2008
Rafael Gilead

erro linha5

30 01 2008
E Silva

fato, nem tinha notado, faltou o argumento do sprintf. Deveria ser:

echo sprintf(‘Simbolo “%s” nao encontrado’, $papel);

1 06 2008
j2megamedev

estava a procura do link na bovespa, mas já que veio com código.. melhor ainda.

parabéns man, seu blog tá blz.

4 11 2008
Alexandre de Oliveira

Magavilha! Com algumas modificações fiz funcionar maravilha.

Agora só falta um do dólar e estou feito.

Valeu aí, um grande abraço!

Deixe um comentário