JSON ja PHP?

Eli olisiko missään esimerkkejä miten JSON ja PHP liitetään yhteen koodilla. Haluisin tehdä oman PHP-päätteisen ja kielisen pienen sivun, jota voisi seurata tavan kännykällä Bitcoinnin kurssia ja kenties oman lompakonkin saldoa.

Eli Bitstampista saa ilmeisesti JSON systeemit haettua PHP-sivulle missä ne voi esittää sitten miten ite kukin tykkää. Mutta miten? Eli Bitstampista saa JSON tiedoston jossa kurssitietoa, kuten tämän linkin takaa: https://www.bitstamp.net/api/ticker/ .

Niin ja onko blockchain.info sivulla myös JSON systeemiä, niin että voisi oman lompakonkin saldon esim Euroina saada liitettyä omalle php-päätteiselle ja kieliselle sivulle.

Voisin tietty imasta tuon JSON-tiedoston PHP:llä Bitstampista ja sitten palastella sitä kaikenlaisilla explode yms funktiolla. Mutta koska lyhyen eli noin 15 minuutin JSON-oppimääräni perusteella osaa myös PHP automaattisesti itse lukea JSON tietoja ja laittaa ne tiedot sitten suoraan PHP-kielen omiin muuttujiin. Niin kiinnostaisi tietää miten tämä oikeasti tapahtuisi? Niin pääsisi heti alkuun ilman mahdollisia tuntikausien turhauttavia kokeiluja.

Olen siis itse käyttänyt PHP:tä tietokantojen käyttämiseen yms. Eli siis PHP-kieli on sinällänsä tuttu itselle. Mutta tuo JSON olikin ihan uutta.

Eli onnistuisiko lompakon saldon ja vaikka Bitcoinnin kurssin kaivamaan jotenkin omille sivuille?

Olisiko kenties jollakin jotain esimerkki koodia…

Kiitoksia jo valmiiksi mahdollisista asiaa vielä enemmän valaisevista tiedoista.

Jos ei keksittäis pyörää uudelleen. Nämä löytyy PHP:sta ihan vakiona ilman mitään lisäpaketteja.

http://us3.php.net/manual/en/function.json-decode.php
http://us3.php.net/manual/en/function.json-encode.php

Morjens. Sattupa sopivasti että oli goxille tehtynä tällanen. Ihan valmis esimerkki =)

[code]<?php

//mtgox haluaa user-agent headerin…
$options = array(
‘http’=>array(
‘method’=>“GET”,
‘header’=>“Accept-language: en\r\nUser-Agent: custom script\r\n”,
‘timeout’=>10
)
);
$context = stream_context_create($options);

//blockchain.infosta osoitteen balanssi
$jsonfile = file_get_contents(“http://blockchain.info/address/1BitBotTJRmydJWbKbPB1JBQx2N3dWeTQZ?format=json”, false, $context);
$decoded_json = json_decode($jsonfile, true);
$ADDRESS_BALANCE = ($decoded_json[‘final_balance’]/100000000);

//mtgoxista viimeisin dollarikurssi
$tickers_file_usd = file_get_contents(“https://data.mtgox.com/api/1/BTCUSD/ticker”, false, $context);
$decoded_ticker = json_decode($tickers_file_usd, true);
$MTGOX_BTCUSD_LAST = $decoded_ticker[‘return’][‘last_local’][‘value’];
echo $MTGOX_BTCUSD_LAST;
//balanssi*kurssi ja roundataan se 2 desimaalille. lopuksi muutetaan vielä piste pilkuksi
$BALANCE_USD = str_replace(".",",",round($ADDRESS_BALANCE * $MTGOX_BTCUSD_LAST,2));

/*
$ADDRESS_BALANCE = annetun btc-osoitteen balanssi blockchain.infosta
$MTGOX_BTCUSD_LAST = BTC/USD last price mtgoxista
$BALANCE_USD = balanssi dollareina
*/

// näytetään data

echo ‘

Balanssi on ‘,$BALANCE_USD,’ mtgox-dollaria.

’;

?>[/code]

[quote=“Anduck, post:3, topic:1356”]Morjens. Sattupa sopivasti että oli goxille tehtynä tällanen. Ihan valmis esimerkki =)

[code]<?php

//mtgox haluaa user-agent headerin…
$options = array(
‘http’=>array(
‘method’=>“GET”,
‘header’=>“Accept-language: en\r\nUser-Agent: custom script\r\n”,
‘timeout’=>10
)
);
$context = stream_context_create($options);

//blockchain.infosta osoitteen balanssi
$jsonfile = file_get_contents(“http://blockchain.info/address/1BitBotTJRmydJWbKbPB1JBQx2N3dWeTQZ?format=json”, false, $context);
$decoded_json = json_decode($jsonfile, true);
$ADDRESS_BALANCE = ($decoded_json[‘final_balance’]/100000000);

//mtgoxista viimeisin dollarikurssi
$tickers_file_usd = file_get_contents(“https://data.mtgox.com/api/1/BTCUSD/ticker”, false, $context);
$decoded_ticker = json_decode($tickers_file_usd, true);
$MTGOX_BTCUSD_LAST = $decoded_ticker[‘return’][‘last_local’][‘value’];
echo $MTGOX_BTCUSD_LAST;
//balanssi*kurssi ja roundataan se 2 desimaalille. lopuksi muutetaan vielä piste pilkuksi
$BALANCE_USD = str_replace(".",",",round($ADDRESS_BALANCE * $MTGOX_BTCUSD_LAST,2));

/*
$ADDRESS_BALANCE = annetun btc-osoitteen balanssi blockchain.infosta
$MTGOX_BTCUSD_LAST = BTC/USD last price mtgoxista
$BALANCE_USD = balanssi dollareina
*/

// näytetään data

echo ‘

Balanssi on ‘,$BALANCE_USD,’ mtgox-dollaria.

’;

?>[/code][/quote]

Kiitoksia tällä säästän paljon aikaa ja pääsee suoraan ihmetteleen tuota systeemiä omilla muunnoksilla :slight_smile:

Jäi kyllä vielä vaivaamaan parituntia säädettyäni koodia. Että miten saisi muutettua dollarit euroiksi? Kun tutkin noita JSON-tiedostoja niin siellä ei paljoa EUR:ja löytynyt. Pitääkö siis hakea jostain myös dollarit -> euroiksi vaihtosuhde esim taas JSON-systeemillä. Jos niin mistä vai saisiko sen kaivettua jotenkin Bitstampista, MTgoxista tai vaikka Blockchain:sta?

Eikös näitä forex-saitteja, joilla tredaillaan EURUSD:a, ole pilvin pimein? Luulisi tuon valuuttaparin kurssihistoriadataa löytyvän API:n kautta, vaatii kenties rekisteröitymistä ja ainakin demotilin avaamista. Tradingview.com:ssa ainakin eurodollarin kurssin näkee historioineen mutta en osaa sen mahd. APIsta sanoa mitään.

Bitstampin APIsta löytyy EUR/USD kurssi. Myös Yahoolta saa tuon kurssin.

Vaihtoehtoisesti voinee hakea suoraan pörssin oman BTC/EUR kurssin ja käyttää sitä.