hapertown napisał(a):
Ok, to idźmy od początku:
Odpalasz taki kod:
$apikey='xxx'; $apisecret='xxx'; $nonce=time(); $uri="strona"; $sign=hash_hmac('sha512',$uri,$apisecret); $ch = curl_init($uri); curl_setopt($ch, CURLOPT_HTTPHEADER, array('apisign:'.$sign)); $execResult = curl_exec($ch);W odpowiedzi na Twoje żądanie curl otrzymujesz taki json:
{"success":true,"message":"","result":[{"Name":"WWA","High":0.01001163,"Low":0.00928114,"SS":67732.95449843,"Last":0.00955998,"Volume":645.40161050,"Time":"2017-10-27T23:40:10.393","Now":0.00955998,"Now2":0.00956000,"Open":2477,"Orders":12637,"Prev":0.00939754,"Created":"2016-03-12T00:00:00"}]}
Zgadza sie.
Ten json obrabiasz funkcją json_decode co w rezultacie daje Ci coś takiego:
Obróbka:$obj = json_decode($execResult);Rezultat:
stdClass Object ( [success] => 1 [message] => [result] => Array ( [0] => stdClass Object ( [Name] => WWA [High] => 0.01001163 [Low] => 0.00928114 [SS] => 67732.95449843 [Last] => 0.00955998 [Volume] => 645.4016105 [Time] => 2017-10-27T23:40:10.393 [Now] => 0.00955998 [Now2] => 0.00956 [Open] => 2477 [Orders] => 12637 [Prev] => 0.00939754 [Created] => 2016-03-12T00:00:00 ) ) )
Nie, cały czas otrzymuje to co wcześniej.
Jak widzisz, rezultat zwraca obiekt stdClass w którym jest tablica result zwracająca listę obiektów. Do każdego z tych rezultatów o polu Name możesz więc się dostać w następujący sposób:
$obj->result[0]->Name // czyli obiekt o właściwości result, potem 1 pole z tego obiektu bo to tablica (daje nam obiekt) a następnie pole NameJeżeli wszystko jest tak jak opisałem i za każdym razem robisz wywołanie z curla (za każdym odświeżeniem strony np.) to nie ma siły, żebyś nie mógł dostać się do aktualnych rezultatów i ich pól w ten sposób.
Jeżeli dostajesz ostrzeżenie:
Trying to get property of non-object in C:\xampp\htdocs\index.php on line 12
Dostaje to ostrzeżenie
to prawdopodobnie znaczy, że albo Twoja odpowiedź po zdekodowaniu nie jest obiektem albo że pierwszy element tablicy z result nie jest obiektem. A to możesz sam określić patrząc co zwraca Ci funkcja np. var_dump (jakie typy danych czym są)
Jak mam wywołać tą funkcje bo jak wywołuje tak:
echo var_dump(json_decode($execResult));
to otrzymuje
int(1)
A jak wywołuje tak:
$arJson = json_decode($execResult);
var_dump( $arJson[ 0 ] );
to otrzymuje:
NULL
Jak ja mam to wywołać tą funkcje var_dump() żeby zobaczyć co zwraca?