Jak wyświetlić tylko część a nie całość

Jak wyświetlić tylko część a nie całość
asdf42
  • Rejestracja:prawie 9 lat
  • Ostatnio:ponad 2 lata
  • Postów:136
0
Kopiuj
$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);
$obj = json_decode($execResult);

powyższy kod wyświetli mi coś takiego:

Kopiuj

{
	"success" : true,
	"message" : "",
	"result" : [{
			"Imie" : "Ala",
			"Display" : null
		}
    ]
}

Ja chciałbym żeby wyświetliło się tylko :"Ala"
Próbowałem to wypisać takim kodem:

Kopiuj
$obj = ["result"]["Imie"];

Niestety nie działa, cały czas wypisuje wszystko, ktoś wie jak mi pomóc?

jurek1980
  • Rejestracja:ponad 8 lat
  • Ostatnio:minuta
  • Postów:3462
2
Kopiuj
{
    "success" : true,
    "message" : "",
    "result" : [{
            "Imie" : "Ala",
            "Display" : null
        }
    ]
}

To jest ciągle json. Skoro masz json_decode to dlaczego w wyniku echo masz ciągle Json?
Powinieneś na końcu mieć objekt i móc dostać się do pola poprze $obj->result->imie

edytowany 1x, ostatnio: jurek1980
asdf42
  • Rejestracja:prawie 9 lat
  • Ostatnio:ponad 2 lata
  • Postów:136
0
Kopiuj
$obj->result->imie;

nie działa
wyświetla taki błąd w tej lini:
Trying to get property of non-object

NB
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 3 lata
  • Postów:89
0

To nie jest array tylko json. Jak otrzymasz array to będziesz mógł dostać się do imienia tak jak pisałeś.

asdf42
  • Rejestracja:prawie 9 lat
  • Ostatnio:ponad 2 lata
  • Postów:136
0
n_bie napisał(a):

To nie jest array tylko json. Jak otrzymasz array to będziesz mógł dostać się do imienia tak jak pisałeś.

A jak otrzymać array?

jurek1980
  • Rejestracja:ponad 8 lat
  • Ostatnio:minuta
  • Postów:3462
1

Ja zasugerowałem, że albo wklejasz zły kod, albo robisz echo, czy chcesz się dostać do danych przed wykonaniem json_decode().
Zerknij do przykładów w dokumentacji PHP: http://php.net/manual/pl/function.json-decode.php
Jak już koniecznie chcesz tablicę to podajesz "true" jako drugi paramet json_decode($json, true).

edytowany 1x, ostatnio: jurek1980
asdf42
  • Rejestracja:prawie 9 lat
  • Ostatnio:ponad 2 lata
  • Postów:136
0

To jak mam to napisać żeby zadziałało?

NB
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 3 lata
  • Postów:89
0

Teoretycznie jest w porządku, więc strzelam gdzieś błąd przy wykonywaniu kodu.

asdf42
  • Rejestracja:prawie 9 lat
  • Ostatnio:ponad 2 lata
  • Postów:136
0

Po dodaniu "true" jako drugi paramet json_decode($json, true).

Kopiuj
$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);
$obj = json_decode($execResult,true);
$obj = ["result"]["Imie"];

Wyskakuje błąd że niezdefiniowany index: Imie

jurek1980
  • Rejestracja:ponad 8 lat
  • Ostatnio:minuta
  • Postów:3462
0
Kopiuj
$json = '{
    "success" : true,
    "message" : "",
    "result" : [{
            "Imie" : "Ala",
            "Display" : null
        }
    ]
}';

$decodedToObjecet = json_decode($json);
print_r($decodedToObjecet->result[0]->Imie);

//Output Ala
edytowany 1x, ostatnio: jurek1980
asdf42
  • Rejestracja:prawie 9 lat
  • Ostatnio:ponad 2 lata
  • Postów:136
1

Dane które pobieram z tej strony są dynamiczne i co chwile się zmieniają. Jak przypisze do $json tak jak ty to zawsze mi się to samo będzie wyświetlać. Chcę zrobić żeby zawsze się wyświetlało to imie jakie w danej chwili jest wygenerowane, więc nie można tak przypisać....

HA
  • Rejestracja:prawie 10 lat
  • Ostatnio:około 7 lat
  • Postów:335
0

Z tego co piszesz, te dane docelowe, które chcesz odczytać to jakaś tablica wyników, którą trzeba zdekodować jsonem (parametr success to zwrotna wiadomość czy pobranie się udało, message to info dla ciebie, natomiast result to wyniki).
Nie wiem dokładnie co chcesz osiągnąć, ale jak chcesz się dostać do wszystkich wyników i ich wartości, musisz to przepętlować, po zdekodowaniu:

Kopiuj
$decode=json_decode($x);
foreach($decode->result as $result) { echo $result->Imie; }

Wtedy pobierzesz dane z każdego rezultatu, który zwróci Ci to Twoje api.

asdf42
  • Rejestracja:prawie 9 lat
  • Ostatnio:ponad 2 lata
  • Postów:136
0
Kopiuj
$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);
$obj = json_decode($execResult);

$decode=json_decode($execResult);     //linia 94
foreach($decode->result as $result){ 
	echo $result->Imie; 

tak miałem podstawić pod x?
bo wywala:
Notice: Trying to get property of non-object in C:\xampp\htdocs\index.php on line 94
Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\index.php on line 94

Chcę osiągnąc tak jak pisałem wcześniej czyli napisze jeszcze raz:
mam taki kod:

Kopiuj
$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);
$obj = json_decode($execResult);

i po jego uruchomieniu otrzymuje cos takiego:

Kopiuj
{
    "success" : true,
    "message" : "",
    "result" : [{
            "Imie" : "Ala",
            "Display" : null
        }
    ]
}

oczywiście tych wyników jest dużo więcej, ja chce wydobyć z tych wyników tylko jeden dla resultatu "Imie"

edytowany 1x, ostatnio: asdf42
ajgoron
  • Rejestracja:ponad 9 lat
  • Ostatnio:prawie 2 lata
  • Lokalizacja:Rzeszów
  • Postów:91
0

Piszesz że: "i po jego uruchomieniu otrzymuje cos takiego:...." - nieprawda.
Wklej dokładnie cały kod. Ten "wynik" to var_dump($execResult) czy var_dump($obj) czy jeszcze coś innego? Coś tu kręcisz. :)


"Jedna robótka - miesiąc wódka" - Ojciec Pijo
asdf42
  • Rejestracja:prawie 9 lat
  • Ostatnio:ponad 2 lata
  • Postów:136
0
Kopiuj
<?php

$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);
$obj = json_decode($execResult);

?>

wynik:

Kopiuj
{"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"}]}

Da się z tego wyciągnąć wynik np dla Name?

NB
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 3 lata
  • Postów:89
0

Robisz coś źle, bo po wykonaniu

Kopiuj
$execResult = '{"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"}]}';
$obj = json_decode($execResult);

Dostajesz array (to co Ty masz to json)

Kopiuj
var_dump($obj);
object(stdClass)[1]
  public 'success' => boolean true
  public 'message' => string '' (length=0)
  public 'result' => 
    array (size=1)
      0 => 
        object(stdClass)[2]
          public 'Name' => string 'WWA' (length=3)
          public 'High' => float 0.01001163
          public 'Low' => float 0.00928114
          public 'SS' => float 67732.95449843
          public 'Last' => float 0.00955998
          public 'Volume' => float 645.4016105
          public 'Time' => string '2017-10-27T23:40:10.393' (length=23)
          public 'Now' => float 0.00955998
          public 'Now2' => float 0.00956
          public 'Open' => int 2477
          public 'Orders' => int 12637
          public 'Prev' => float 0.00939754
          public 'Created' => string '2016-03-12T00:00:00' (length=19)

A potem możesz wywołać np. Name kodem, który był na pierwszej stronie

Kopiuj
print_r($obj->result[0]->Name);

WWA

Lub w pętli, która też tu jest wyżej.
Strzelam, że masz gdzieś wywołanie result zanim wykonasz na nim json_decode.

edytowany 2x, ostatnio: n_bie
asdf42
  • Rejestracja:prawie 9 lat
  • Ostatnio:ponad 2 lata
  • Postów:136
0

No to nie wiem co moge robić źle, wklejam to co mam w pliku index.php i pokazuje wam wynik z localhosta

NB
A jaka wersja php?
asdf42
  • Rejestracja:prawie 9 lat
  • Ostatnio:ponad 2 lata
  • Postów:136
0

PHP/7.1.10

NB
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 3 lata
  • Postów:89
0

Odpal sobie tu kod, który napisałem http://sandbox.onlinephpfunctions.com/

asdf42
  • Rejestracja:prawie 9 lat
  • Ostatnio:ponad 2 lata
  • Postów:136
0
Kopiuj
$execResult = '{"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"}]}';
$obj = json_decode($execResult);

print_r($obj->result[0]->Name);

po wykonaniu tego twojego kodu na tej stronie otrzymuje WWA, tak samo na localhoscie

NB
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 3 lata
  • Postów:89
0

No to w czym problem? Wcześniej pisałeś, że po takim wywołaniu masz jakieś błędy.

asdf42
  • Rejestracja:prawie 9 lat
  • Ostatnio:ponad 2 lata
  • Postów:136
0

Cały czas powtarzam że ja chce otrzymać z tego co mi się wyświetla po wykonaniu tylko część. Jak zrobie tak(dokaładnie taki kod jak poniżej):

Kopiuj
<?php
 
$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);
$obj = json_decode($execResult);
 
?>

to otrzymuje

Kopiuj
{"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"}]}

A ja chce wyciągnąć tylko jedną wartość np. dla powiedzmy Low;

To jak mam to zrobić? z każdym odświeżeniem localhosta wartośc dla Low się zmienia bo te dane są pobierane ze strony, a ty mi piszesz taki kod"

Kopiuj
$execResult = '{"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"}]}';
$obj = json_decode($execResult);
 

i jak wykonam

Kopiuj
print_r($obj->result[0]->Low);

to oczywiście się wyświetli na stronie tylko
0.00928114
ale z każdym odświeżeniem strony wartość zawsze będzie ta sama bo to jest przypisane do $execResult
a ja chce żeby ta wartość była pobierana ze strony z każdym jej odświeżeniem, wartość ta zawsze będzie inna.
Pisze to już kolejny raz o co mi chodzi...

NB
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 3 lata
  • Postów:89
0

Przecież jeśli ten skrypt jest wykonywany przy otworzeniu strony (a raczej jest) to zmienna print_r($obj->result[0]->Low) będzie zawsze taka jaką zwraca to API/curl/połączenie czyli inna...
Żeby ta zmienna była zapisana na zawsze to musisz kombinować z eksportem do jsona/yml etc., ale tego nie chcesz.

Próbowałeś chociaż wykonać ten skrypt u siebie czy z góry zakładasz, że zmienna będzie taka jak przy poprzednim odświeżeniu bo przecież już ją zapisałeś?

edytowany 1x, ostatnio: n_bie
ajgoron
  • Rejestracja:ponad 9 lat
  • Ostatnio:prawie 2 lata
  • Lokalizacja:Rzeszów
  • Postów:91
0

Polecam wrócić do podstaw: tablice, przypisywanie zmiennych, w ogóle co się dzieje podczas przetwarzania requesta. Coś tu ściemniasz. Albo to jest kiepski trolling albo brakuje Ci fundamentalnych podstaw. To zadanie z technikum czy co? Gdzie byłeś w czasie lekcji? :)


"Jedna robótka - miesiąc wódka" - Ojciec Pijo
jurek1980
  • Rejestracja:ponad 8 lat
  • Ostatnio:minuta
  • Postów:3462
0
Kopiuj
<?php
 
$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);// tu otrzymujesz json
$obj = json_decode($execResult); //tu otrzymujesz obiekt gdzie dla result przypisana jest tabilca obiektow, pierwszy z nich ma oczywiscie indeks [0]
print_r($obj->result[0]->Name);//to pokaze Ci juz samo imie
?>

Opisałem Ci w komentarzach do kodu krok po kroku o co chodzi.
Upierasz się, najpierw, że w wyniku wykonania funkcji json_decode, otrzymujesz ciągle Json. Co nie jest możliwe.
Potem upierasz się, że po przeładowaniu strony uzyskujesz ciągle ten sam wynik. Tego nie jesteśmy w stanie sprawdzić bo nie wiemy co zwraca Ci Api. Jednak zakładając, że API przy każdym wywołaniu zwraca zawsze inne dane to i wykonanie powyższego kodu powinno je pokazać.
Nikt nie każe Ci przypisywać w kodzie do zmiennej na stałe otrzymanego raz wyniku. Ja starałem Ci się odpowiedzieć na pytanie jak dostać się do danych. Pokazałem Ci to na przykładzie przedstawionego przez Ciebie Jsona bo nie mam dostępu do wyników Twojego API. Podobnie z resztą jak koledzy.
Koledzy słusznie zresztą zasugerowali jeszcze, że wynik może zawierać więcej niż jeden obiekt w result. Wtedy będziesz miał kolejne obiekty w tablicy z następnymi indeksami i jeśli chcesz mieć dostęp do ich wyników musisz zrobić pętlę i dostawać się do obiektów w result w pętli.

edytowany 2x, ostatnio: jurek1980
asdf42
  • Rejestracja:prawie 9 lat
  • Ostatnio:ponad 2 lata
  • Postów:136
0
n_bie napisał(a):

Przecież jeśli ten skrypt jest wykonywany przy otworzeniu strony (a raczej jest) to zmienna print_r($obj->result[0]->Low) będzie zawsze taka jaką zwraca to API/curl/połączenie czyli inna...
Żeby ta zmienna była zapisana na zawsze to musisz kombinować z eksportem do jsona/yml etc., ale tego nie chcesz.

Próbowałeś chociaż wykonać ten skrypt u siebie czy z góry zakładasz, że zmienna będzie taka jak przy poprzednim odświeżeniu bo przecież już ją zapisałeś?

Oczywiście że próbowałem wykonać ten skrypt, cały kod wygląda tak:

Kopiuj
<?php
$apikey='xx';
$apisecret='xx';

$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);
$execResult = '{"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"}]}';
$obj = json_decode($execResult);
print_r($obj->result[0]->Low);
	  
 ?>

i po odpaleniu localhosta otrzymuje wszystkie aktualne wyniki oraz na końcu ten przypisany do $execResult czyli 0.00928114.

asdf42
  • Rejestracja:prawie 9 lat
  • Ostatnio:ponad 2 lata
  • Postów:136
0
jurek1980 napisał(a):
Kopiuj
<?php
 
$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);// tu otrzymujesz json
$obj = json_decode($execResult); //tu otrzymujesz obiekt gdzie dla result przypisana jest tabilca obiektow, pierwszy z nich ma oczywiscie indeks [0]
print_r($obj->result[0]->Name);//to pokaze Ci juz samo imie
?>

Opisałem Ci w komentarzach do kodu krok po kroku o co chodzi.
Upierasz się, najpierw, że w wyniku wykonania funkcji json_decode, otrzymujesz ciągle Json. Co nie jest możliwe.
Potem upierasz się, że po przeładowaniu strony uzyskujesz ciągle ten sam wynik. Tego nie jesteśmy w stanie sprawdzić bo nie wiemy co zwraca Ci Api. Jednak zakładając, że API przy każdym wywołaniu zwraca zawsze inne dane to i wykonanie powyższego kodu powinno je pokazać.
Nikt nie każe Ci przypisywać w kodzie do zmiennej na stałe otrzymanego raz wyniku. Ja starałem Ci się odpowiedzieć na pytanie jak dostać się do danych. Pokazałem Ci to na przykładzie przedstawionego przez Ciebie Jsona bo nie mam dostępu do wyników Twojego API. Podobnie z resztą jak koledzy.
Koledzy słusznie zresztą zasugerowali jeszcze, że wynik może zawierać więcej niż jeden obiekt w result. Wtedy będziesz miał kolejne obiekty w tablicy z następnymi indeksami i jeśli chcesz mieć dostęp do ich wyników musisz zrobić pętlę i dostawać się do obiektów w result w pętli.

Wklejam twój kod:

Kopiuj
<?php

$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);
$obj = json_decode($execResult); 
print_r($obj->result[0]->Name);  //linia 12
?>

i po wykonaniu localhosta dostaje WSZYSTKIE aktualne wyniki z api a pod spodem :
Notice: Trying to get property of non-object in C:\xampp\htdocs\index.php on line 12
Notice: Trying to get property of non-object in C:\xampp\htdocs\index.php on line 12

linia 12 to print_r($obj->result[0]->Name);

asdf42
  • Rejestracja:prawie 9 lat
  • Ostatnio:ponad 2 lata
  • Postów:136
1
ajgoron napisał(a):

Polecam wrócić do podstaw: tablice, przypisywanie zmiennych, w ogóle co się dzieje podczas przetwarzania requesta. Coś tu ściemniasz. Albo to jest kiepski trolling albo brakuje Ci fundamentalnych podstaw. To zadanie z technikum czy co? Gdzie byłeś w czasie lekcji? :)

Nie jest to trolling. Nie jest to zadanie ze szkoły, po prostu chce pobrać dane i potem je odpowiednio wykorzystać. A jak widać coś mi się nie udaje, chociaż kod wam pokazuje że się to powinno udać, nie wiem co moge robić źle...

HA
  • Rejestracja:prawie 10 lat
  • Ostatnio:około 7 lat
  • Postów:335
0

Ok, to idźmy od początku:

Odpalasz taki kod:

Kopiuj
$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:

Kopiuj
{"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"}]}

Ten json obrabiasz funkcją json_decode co w rezultacie daje Ci coś takiego:
Obróbka:

Kopiuj
$obj = json_decode($execResult); 

Rezultat:

Kopiuj
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
                )

        )

)

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:

Kopiuj
$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 Name

Jeż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:

Kopiuj
Trying to get property of non-object in C:\xampp\htdocs\index.php on line 12

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ą)

Kopiuj
object(stdClass)#1 (3) {
  ["success"]=>
  bool(true)
  ["message"]=>
  string(0) ""
  ["result"]=>
  array(1) {
    [0]=>
    object(stdClass)#2 (13) {
      ["Name"]=>
      string(3) "WWA"
      ["High"]=>
      float(0.01001163)
      ["Low"]=>
      float(0.00928114)
      ["SS"]=>
      float(67732.95449843)
      ["Last"]=>
      float(0.00955998)
      ["Volume"]=>
      float(645.4016105)
      ["Time"]=>
      string(23) "2017-10-27T23:40:10.393"
      ["Now"]=>
      float(0.00955998)
      ["Now2"]=>
      float(0.00956)
      ["Open"]=>
      int(2477)
      ["Orders"]=>
      int(12637)
      ["Prev"]=>
      float(0.00939754)
      ["Created"]=>
      string(19) "2016-03-12T00:00:00"
    }
  }
}

i jeżeli choć trochę jarzysz podstawy programowania w PHP to wtedy zobaczysz czy masz tam obiekt, tablicę czy jeszcze coś innego i jak się do tego dostać....

edytowany 1x, ostatnio: hapertown
NB
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 3 lata
  • Postów:89
0

Ewentualnie curl ma jakiś błąd, json jest nullem i wszystko się sypie.

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)