Preço de Bitcoin MtGox via PHP

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