Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Json brak możliwości wyświetlania zawartości pliku
brzanek
post 15.04.2020, 09:44:13
Post #1





Grupa: Zarejestrowani
Postów: 427
Pomógł: 0
Dołączył: 8.11.2012

Ostrzeżenie: (0%)
-----


Witam mam problem z wyświetlaniem zawartości danych z pliku json.
Mam taki kod
  1. <?php
  2. ini_set( 'display_errors', 'On' );
  3. error_reporting( E_ALL );
  4.  
  5. $json = 'https://api.met.no/weatherapi/locationforecast/2.0/.json?lat=53.15&lon=15.42';
  6. $response = json_decode($json, true);
  7. echo "<pre>".print_r(json_decode($response))."</pre>";
  8. ?>

Błędów nie widać na stronie ale nic się nie wyświetla.
Po wywołaniu samego adresu https://api.met.no/weatherapi/locationforec...5&lon=15.42 dane są.
Docelowo chcę zapisać te dane do bazy danych mysql ale jak nic się nie wyświetla to jak to zrobić?
Go to the top of the page
+Quote Post
trueblue
post 15.04.2020, 09:50:52
Post #2





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Czemu dwukrotnie dekodujesz dane?


--------------------
Go to the top of the page
+Quote Post
nospor
post 15.04.2020, 09:51:43
Post #3





Grupa: Moderatorzy
Postów: 36 457
Pomógł: 6297
Dołączył: 27.12.2004




$json = 'https://api.met.no/weatherapi/locationforecast/2.0/.json?lat=53.15&lon=15.42';
$response = json_decode($json, true);

Ale ty tak powaznie? Przeciez teraz decodujesz adres URL a nie to co sie kryje pod tym adresem... Przeciez wpierw masz pobrac to co tam jest chciazby przy pomocy file_get_contents albo najlepiej CURL


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
brzanek
post 15.04.2020, 10:00:51
Post #4





Grupa: Zarejestrowani
Postów: 427
Pomógł: 0
Dołączył: 8.11.2012

Ostrzeżenie: (0%)
-----


Zrobiłem tak
  1. $json = 'https://api.met.no/weatherapi/locationforecast/2.0/.json?lat=53.15&lon=15.42';
  2. $data = json_decode($json);
  3. echo $data;

Nic nie ma

Próbowałem też zapisać to na serwerze ale nic z tego
  1. $url = 'https://api.met.no/weatherapi/locationforecast/2.0/.json?lat=53.15&lon=15.42';
  2. $ch = curl_init();
  3. curl_setopt($ch,CURLOPT_URL,$url);
  4. curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);$json_output=curl_exec($ch);
  5. curl_close($ch);
  6. fwrite(fopen('dane.json','w'),$json_output);


Po zastosowaniu tego
  1. $json_string = 'https://api.met.no/weatherapi/locationforecast/2.0/.json?lat=53.15&lon=15.42';
  2. $jsondata = file_get_contents($json_string);
  3. $obj = json_decode($jsondata,true);
  4. echo "<pre>";
  5. print_r($obj);

wywala mi błąd
Warning: file_get_contents(https://api.met.no/weatherapi/locationforecast/2.0/.json?lat=53.15&lon=15.42): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /home/brzanek/public_html/prognoza/new2/choszczno.php on line 24
to jest ta linia
$jsondata = file_get_contents($json_string);

Ten post edytował brzanek 15.04.2020, 10:07:49
Go to the top of the page
+Quote Post
nospor
post 15.04.2020, 10:14:54
Post #5





Grupa: Moderatorzy
Postów: 36 457
Pomógł: 6297
Dołączył: 27.12.2004




Zobacz co ci zwraca CURL, zobacz jakie dostajesz naglowki, jaka dokladnie tresc itp . No po tylu latach na forum trzeba ci ciagle mowic jak masz debugowac?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
brzanek
post 15.04.2020, 10:32:02
Post #6





Grupa: Zarejestrowani
Postów: 427
Pomógł: 0
Dołączył: 8.11.2012

Ostrzeżenie: (0%)
-----


Do tej pory nie miałem problemów z plikami typu json ale z tym mam problem.
Zobacz czy to da się zrobić z tym adresem bo może kombinuję i chcę rzeczy niemożliwych.
Jak mam zobaczyć co mi zwraca CURL?
Do tej pory w taki sposób zapisywałem dane z pliku json do pliku na serwerze i wszystko działała (na innym pliku json z innej strony)
  1. $url = 'https://api.darksky.net/forecast/_KEY_/53.167994,15.423062?lang=pl&extend=hourly&units=ca';
  2. $ch = curl_init();
  3. curl_setopt($ch,CURLOPT_URL,$url);
  4. curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);$json_output=curl_exec($ch);
  5. curl_close($ch);
  6. fwrite(fopen('choszcznonew.json','w'),$json_output);

A z tym plikiem https://api.met.no/weatherapi/locationforec...5&lon=15.42 to nie działa - dlaczego?
Go to the top of the page
+Quote Post
nospor
post 15.04.2020, 10:34:54
Post #7





Grupa: Moderatorzy
Postów: 36 457
Pomógł: 6297
Dołączył: 27.12.2004




Jak zobaczyc? no var_dump()...

I wspomnialem jeszcze o naglowkach bo one tez niosa kupe waznych informacji. zobacz w manualu jak sie sprawdza naglowki

Cytat
Do tej pory nie miałem problemów z plikami typu json
I jak to sie ma do problemu? Jedyne to, ze jak masz problem to nie umiesz debugowac a tym nie ma co sie chwailic wink.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
brzanek
post 15.04.2020, 10:45:16
Post #8





Grupa: Zarejestrowani
Postów: 427
Pomógł: 0
Dołączył: 8.11.2012

Ostrzeżenie: (0%)
-----


Zrobiłem tak
  1. $url = "https://api.met.no/weatherapi/locationforecast/2.0/.json?lat=53.15&lon=15.42";
  2. $headers = array('accept: application/json');
  3. $cSession = curl_init();
  4. curl_setopt($cSession,CURLOPT_URL,$url);
  5. curl_setopt($cSession, CURLOPT_CUSTOMREQUEST, "GET");
  6. curl_setopt($cSession,CURLOPT_RETURNTRANSFER,1);
  7. $result=curl_exec($cSession);
  8. $result = json_decode($result, true);
  9. curl_close($cSession);
  10. var_dump($result);

Strona zwraca NULL
Go to the top of the page
+Quote Post
nospor
post 15.04.2020, 10:47:11
Post #9





Grupa: Moderatorzy
Postów: 36 457
Pomógł: 6297
Dołączył: 27.12.2004




var_dump masz robic na wynik curl_exec a nie na json_decode....
I mowilem o NAGLOWKACH jeszcze


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
brzanek
post 15.04.2020, 11:00:22
Post #10





Grupa: Zarejestrowani
Postów: 427
Pomógł: 0
Dołączył: 8.11.2012

Ostrzeżenie: (0%)
-----


Dałem tak
  1. $url = "https://api.met.no/weatherapi/locationforecast/2.0/.json?lat=53.15&lon=15.42";
  2. $headers = array('accept: application/json');
  3. $cSession = curl_init();
  4. curl_setopt($cSession,CURLOPT_URL,$url);
  5. curl_setopt($cSession, CURLOPT_CUSTOMREQUEST, "GET");
  6. curl_setopt($cSession,CURLOPT_RETURNTRANSFER,1);
  7. $result=curl_exec($cSession);
  8. var_dump($result);

Pojawił mi się błąd na stronie
string(74) "403 Forbidden User-Agent header cannot be empty, use a unique identifier "
Czyli chyba nic z tego nie będzie. Ale dziwne że ten adres nie wyświetla błędów https://api.met.no/weatherapi/locationforec...5&lon=15.42
Może coś z tym da się jeszcze zrobić curl -X GET --header 'Accept: application/json' 'https://api.met.no/weatherapi/locationforecast/2.0/.json?lat=53.15&lon=15.42'
Go to the top of the page
+Quote Post
nospor
post 15.04.2020, 11:05:48
Post #11





Grupa: Moderatorzy
Postów: 36 457
Pomógł: 6297
Dołączył: 27.12.2004




No widzisz, od razy wszystko jasne.
NO a kumunikat bledu masz wyrazny i latwy do poprawienia. Ustaw naglowek na USER-AGENT i po sprawie


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
brzanek
post 15.04.2020, 11:19:53
Post #12





Grupa: Zarejestrowani
Postów: 427
Pomógł: 0
Dołączył: 8.11.2012

Ostrzeżenie: (0%)
-----


Wielkie dzięki za pomoc.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 28.04.2024 - 11:07