Se você é como eu, então percebe a importância de saber o preço atual do BTC para ajudar com um investimento inteligente. Como tal, fico em um terminal Linux na maior parte do dia sem a opção de visualizar uma GUI ou um navegador da web ncurses (elinks, lynx) para fins de segurança. No entanto, usando alguns operadores PHP e CURL básicos, é possível extrair informações JSON da API JSON MtGox para extrair o preço atual, não importa onde você esteja com o PHP.
#!/usr/bin/env php
<?php
$c = curl_init();
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_HTTPHEADER, array('Accept: application/json', 'Content-Type: application/json'));
curl_setopt($c, CURLOPT_URL, 'http://data.mtgox.com/api/2/BTCUSD/money/ticker');
$data = curl_exec($c);
curl_close($c);
Acima está o início do nosso script, que inclui a abertura de uma conexão CURL com o ticker monetário MtGox pelo preço atual do BTC em dólares americanos (consulte a documentação para obter mais informações). Coisas bastante padrão para um script bastante padrão.
Por fim, decodificamos e despejamos os dados JSON retornados em matrizes:
$obj = json_decode($data);
Isso nos permite acessar facilmente as informações JSON por meio de uma string PHP. Por fim, simplesmente informamos ao script quais informações devem ser retornadas:
echo print_r($obj->{'data'}->{'avg'}->{'display_short'}."n", true);
?>
Como gostaríamos de executá-lo como um comando de terminal, e não como um arquivo PHP normal, podemos simplesmente adicionar o caminho para o arquivo como um alias em nosso arquivo .bashrc:
alias btc='/root/.bin/btc.php'
Neste caso, estou pedindo ao PHP para simplesmente retornar o objeto ‘display_short’ que ecoa o preço de impressão atual para BTC em nossa janela de terminal:
root @ localhost .bin]$ btc
$213.64
E é isso. Esperançosamente, isso ajudará alguém a tomar algumas decisões comerciais inteligentes!
O script em sua totalidade:
#!/usr/bin/env php
<?php
$c = curl_init();
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_HTTPHEADER, array('Accept: application/json', 'Content-Type: application/json'));
curl_setopt($c, CURLOPT_URL, 'http://data.mtgox.com/api/2/BTCUSD/money/ticker');
$data = curl_exec($c);
curl_close($c);
$obj = json_decode($data);
echo print_r($obj->{'data'}->{'avg'}->{'display_short'}."n", true);
?>
Observe que você não é obrigado a adicioná-lo a nenhum arquivo de alias (caso não consiga), você pode simplesmente salvá-lo como qualquer arquivo PHP antigo e remover o shebang da primeira linha do arquivo PHP e executar como qualquer outro arquivo php usando o comando de arquivo php:
root @ localhost .bin]$ php -f btc.php
$213.82