Javascript tömb értékének átadása PHP tömbbe

Javascript tömb értékének átadása PHP tömbbe
2013-03-27T15:51:19+01:00
2013-03-27T16:26:02+01:00
2022-11-28T15:35:42+01:00
sztamas1990
Sziasztok! Az problémám az lenne, hogy nem tudom, miért nem veszi át az értékeket.

A kód:


<?php //first fetch the current rate from MtGox $ch = curl_init('http://data.mtgox.com/api/2/BTCUSD/money/ticker'); curl_setopt($ch, CURLOPT_REFERER, 'Mozilla/5.0 (compatible; MtGox PHP client; '.php_uname('s').'; PHP/'.phpversion().')'); curl_setopt($ch, CURLOPT_USERAGENT, "CakeScript/0.1"); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); $mtgoxjson = curl_exec($ch); curl_close($ch); echo $mtgoxjson; echo "<br>"; //decode from an object to array $output_mtgox = json_decode($mtgoxjson); $output_mtgox_1 = get_object_vars($output_mtgox); $mtgox_array = get_object_vars($output_mtgox_1['ticker']); ?> <br/> <br/> Last:&nbsp;<?php echo $mtgox_array['last']; ?><br/> High:&nbsp;<?php echo $mtgox_array['high']; ?><br/> Low:&nbsp;&nbsp;<?php echo $mtgox_array['low']; ?><br/> Avg:&nbsp;&nbsp;&nbsp;<?php echo $mtgox_array['avg']; ?><br/> Vol:&nbsp;&nbsp;&nbsp;<?php echo $mtgox_array['vol']; ?><br/>

Az érték amit felszeretnék dolgozni:

{"result":"success","data":{"high":{"value":"87.70000","value_int":"8770000","display":"$87.70","display_short":"$87.70","currency":"USD"},"low":{"value":"75.20000","value_int":"7520000","display":"$75.20","display_short":"$75.20","currency":"USD"},"avg":{"value":"81.45453","value_int":"8145453","display":"$81.45","display_short":"$81.45","currency":"USD"},"vwap":{"value":"81.20515","value_int":"8120515","display":"$81.21","display_short":"$81.21","currency":"USD"},"vol":{"value":"73794.54508661","value_int":"7379454508661","display":"73,794.55\u00a0BTC","display_short":"73,794.55\u00a0BTC","currency":"BTC"},"last_local":{"value":"87.44570","value_int":"8744570","display":"$87.45","display_short":"$87.45","currency":"USD"},"last_orig":{"value":"280.00000","value_int":"28000000","display":"280.00\u00a0z\u0142","display_short":"280.00\u00a0z\u0142","currency":"PLN"},"last_all":{"value":"86.20180","value_int":"8620180","display":"$86.20","display_short":"$86.20","currency":"USD"},"last":{"value":"87.44570","value_int":"8744570","display":"$87.45","display_short":"$87.45","currency":"USD"},"buy":{"value":"87.00000","value_int":"8700000","display":"$87.00","display_short":"$87.00","currency":"USD"},"sell":{"value":"87.44570","value_int":"8744570","display":"$87.45","display_short":"$87.45","currency":"USD"},"now":"1364395619580699"}}

A hibaüzenet:

Notice: Undefined index: ticker C:\... in on line 19
Warning: get_object_vars() expects parameter 1 to be object, null given in C:\... in on line 19

Megoldás? :/
Mutasd a teljes hozzászólást!
mondjuk így, teszteltem is:


<?php //first fetch the current rate from MtGox $ch = curl_init('http://data.mtgox.com/api/2/BTCUSD/money/ticker'); curl_setopt($ch, CURLOPT_REFERER, 'Mozilla/5.0 (compatible; MtGox PHP client; '.php_uname('s').'; PHP/'.phpversion().')'); curl_setopt($ch, CURLOPT_USERAGENT, "CakeScript/0.1"); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); $mtgoxjson = curl_exec($ch); curl_close($ch); echo $mtgoxjson; echo "<br>"; //decode from an object to array $output_mtgox = json_decode($mtgoxjson); ?> <br/> <br/> Last:&nbsp;<?php echo $output_mtgox->data->last->value; ?><br/> High:&nbsp;<?php echo $output_mtgox->data->high->value; ?><br/> Low:&nbsp;&nbsp;<?php echo $output_mtgox->data->low->value; ?><br/> Avg:&nbsp;&nbsp;&nbsp;<?php echo $output_mtgox->data->avg->value; ?><br/> Vol:&nbsp;&nbsp;&nbsp;<?php echo $output_mtgox->data->vol->value; ?><br/>
Mutasd a teljes hozzászólást!

  • Helo,

    talán azért ez a hibaüzenet, mert nincsen ticker a json-ban...
    Mutasd a teljes hozzászólást!
  • Ezt értem én is, de nem tudom, hogy hogy hivatkozzak az adatforrásra..
    Mutasd a teljes hozzászólást!
  • mondjuk így, teszteltem is:


    <?php //first fetch the current rate from MtGox $ch = curl_init('http://data.mtgox.com/api/2/BTCUSD/money/ticker'); curl_setopt($ch, CURLOPT_REFERER, 'Mozilla/5.0 (compatible; MtGox PHP client; '.php_uname('s').'; PHP/'.phpversion().')'); curl_setopt($ch, CURLOPT_USERAGENT, "CakeScript/0.1"); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); $mtgoxjson = curl_exec($ch); curl_close($ch); echo $mtgoxjson; echo "<br>"; //decode from an object to array $output_mtgox = json_decode($mtgoxjson); ?> <br/> <br/> Last:&nbsp;<?php echo $output_mtgox->data->last->value; ?><br/> High:&nbsp;<?php echo $output_mtgox->data->high->value; ?><br/> Low:&nbsp;&nbsp;<?php echo $output_mtgox->data->low->value; ?><br/> Avg:&nbsp;&nbsp;&nbsp;<?php echo $output_mtgox->data->avg->value; ?><br/> Vol:&nbsp;&nbsp;&nbsp;<?php echo $output_mtgox->data->vol->value; ?><br/>
    Mutasd a teljes hozzászólást!
  • De mit akarsz elérni? Ha nincs a jsonban ticker, akkor nincs.

    Amúgy ha már az objektumból akarsz tömböt csinálni, akkor az nem elég hogy castolod arraynak az objektumot?


    $mtgox_array=(array)$output_mtgox;

    Vagy mindjárt megkéred a json_decode-ot, hogy tömböt adjon vissza?

    $output_mtgox = json_decode($mtgoxjson, 1);

    Vagy ha már objektum, akkor úgy használni?

    <?php echo $output_mtgox->data->last->value;?>
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd