• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Pobranie danych z pliku json

Object Storage Arubacloud
0 głosów
3,079 wizyt
pytanie zadane 31 maja 2017 w PHP przez Piotrek Jabłoński Początkujący (250 p.)

Siema mam 2 pytania

1 to czy dobrze zrobiłem:

Zaprezentuj zbiór danych w postaci JSON

Zbiór składać się powinien z przynajmniej 5 typów (klas). Wypisz przynajmniej 5 egzemplarzy. Każdy typ opisany

powinien być przynajmniej 5 wartościami.

{
	"Movies": 
	[{
		"title" : "Harry Potter",
		"type" : "Familijny, Fantasy, Przygodowy",
		"direction" : "Chris Columbus",
		"production" : "USA, Wielka Brytania",
		"premiere" : "18 stycznia 2002 (Polska)"
	}],
	"TV Series":
	[{
		"title" : "Dr House",
		"type" : "Dramat, Komedia",
		"direction" : "David Shore",
		"production" : "USA",
		"premiere" : "16 listopada 2004 (Polska)"
	}],
	"Books":
	[{
		"title" : "Symfonia C++",
		"ISBN" : "978-83-7366-134-9, 9788373661349",
		"Data" : "2010",
		"Directory number" : "USA",
		"premiere" : "10 grudzień 2004 (Polska)"
	}],
	"Trailers":
	[{
		"title" : "The Hitman’s Bodyguard Red Band",
		"type" : "Akcja",
		"Year" : "2017",
		"License" : "Standardowa licencja YouTube",
		"premiere" : "10 grudzień 2017 (Polska)"
	}],
	"Tutorials":
	[{
		"title" : "Working with Json and PHP",
		"language" : "JSON, PHP",
		"Year" : "2015",
		"License" : "Standardowa licencja YouTube",
		"premiere" : "10 grudzień 2016 (Polska)"
	}]
	
}

jak pobrać dane z pliku menu.json i wyswietlic je?

Zrobiłem coś takiego ale pokazuje ze tablica pusta:

  <body>
		<?php 
			$tabb = json_decode(file_get_contents('menu.json'));
			echo $tabb;
			var_dump($tabb);
		?>
  </body>

 

komentarz 31 maja 2017 przez niezalogowany
Myślę że problemem może być kodowanie znaków.

2 odpowiedzi

0 głosów
odpowiedź 31 maja 2017 przez HaKIM Szeryf (87,590 p.)
wybrane 31 maja 2017 przez Piotrek Jabłoński
 
Najlepsza

https://3v4l.org/to54Z - Na sztywno działa. :D

Coś z pliczkiem jest nie tak.

Spróbuj z __DIR__.

json_decode(file_get_contents(__DIR__ . '/menu.json'));

 

komentarz 31 maja 2017 przez Piotrek Jabłoński Początkujący (250 p.)

Probowalem z DIR tez null :D

Stworzylem index :

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="description" content="Source code generated using layoutit.com">
    <meta name="author" content="LayoutIt!">
  </head>
  <body>
		<?php 
			$tabb = json_decode(file_get_contents(__DIR__ . '/menu.json'));
			echo $tabb;
			var_dump($tabb);

		?>
  </body>
</html>

Potem stworzylem plik.txt i zmienilem nazwe z rozszerzeniem na menu.json

{
	"Movies": 
	[{
		"title" : "Harry Potter",
		"type" : "Familijny, Fantasy, Przygodowy",
		"direction" : "Chris Columbus",
		"production" : "USA, Wielka Brytania",
		"premiere" : "18 stycznia 2002 (Polska)"
	}],
	"TV Series":
	[{
		"title" : "Dr House",
		"type" : "Dramat, Komedia",
		"direction" : "David Shore",
		"production" : "USA",
		"premiere" : "16 listopada 2004 (Polska)"
	}],
	"Books":
	[{
		"title" : "Symfonia C++",
		"ISBN" : "978-83-7366-134-9, 9788373661349",
		"Data" : "2010",
		"Directory number" : "USA",
		"premiere" : "10 grudzień 2004 (Polska)"
	}],
	"Trailers":
	[{
		"title" : "The Hitman’s Bodyguard Red Band",
		"type" : "Akcja",
		"Year" : "2017",
		"License" : "Standardowa licencja YouTube",
		"premiere" : "10 grudzień 2017 (Polska)"
	}],
	"Tutorials":
	[{
		"title" : "Working with Json and PHP",
		"language" : "JSON, PHP",
		"Year" : "2015",
		"License" : "Standardowa licencja YouTube",
		"premiere" : "10 grudzień 2016 (Polska)"
	}]
	
}

Odpalam stronke na localhost i odpalam tego indexa w pliku zadanie

http://localhost/zadanie/

I wynik null xd co to moze byc?

komentarz 31 maja 2017 przez HaKIM Szeryf (87,590 p.)
Spróbuj użyć samej funkcji file_get_contents na tym pliku i zobacz co zwróci wynik. Lub zamiast ścieżki podaj adres. Może brak dostępu, tylko nie jestem pewien czy nie powinien Cię o tym poinformować odpowiednim Exception... :D
komentarz 31 maja 2017 przez Piotrek Jabłoński Początkujący (250 p.)
uzylem samej funkcji file_get_contents i dziala to co z tym json decode ?xd
komentarz 31 maja 2017 przez HaKIM Szeryf (87,590 p.)
Raczej json_decode. :D
komentarz 31 maja 2017 przez Piotrek Jabłoński Początkujący (250 p.)

Błędem było ustawione formatowanie nie na te BEZ BOM, i tekst zawierał ogonki xd a takie pytanie jak to zrobić by było dobrze?

		<?php 
		
			$tabb = file_get_contents('json.json');
			$json = json_decode($tabb, true);
			echo $json;
			var_dump($json);

			
			
			
		foreach($tabb as $przyklad)
		{
			echo 'Dekodowanie: ' . $przyklad;
			json_decode($przyklad);

			switch(json_last_error())
			{
				case JSON_ERROR_DEPTH:
					echo ' - Przekroczono maksymalny poziom zagnieżdżania danych';
				break;
				case JSON_ERROR_CTRL_CHAR:
					echo ' - Znaleziono niespodziewany znak kontrolny';
				break;
				case JSON_ERROR_SYNTAX:
					echo ' - Błąd składni. Źle skonstruowany JSON';
				break;
				case JSON_ERROR_NONE:
					echo ' - Brak błędów';
				break;
			}

			echo PHP_EOL;
		}
			
			
			
		?>

Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\zadanie\index.php on line 21

komentarz 31 maja 2017 przez CzikaCarry Szeryf (75,340 p.)
Może też być tak, że jakieś reguły w . htaccess coś pierdzielą. Podaj strukturę katalogów i zawartość .htaccess.
komentarz 31 maja 2017 przez Piotrek Jabłoński Początkujący (250 p.)
Juz dobrze, pytanie ten plik json co dałem to:

5klas, 1egzemplarz z danego typu i  5 wartosci tak?
0 głosów
odpowiedź 31 maja 2017 przez Vento Pasjonat (17,120 p.)
Zła ścieżka do pliku..
komentarz 31 maja 2017 przez Piotrek Jabłoński Początkujący (250 p.)
plik jest w tym samym miejscu co index, to jak?

 

a 1 jest wporządku?
komentarz 31 maja 2017 przez Vento Pasjonat (17,120 p.)

Spróbuj coś takiego:

print_r(json_decode(file_get_contents('https://api.myjson.com/bins/1976kx')));

Wrzuciłem Twój plik na hosting link do api: 

https://api.myjson.com/bins/1976kx

U mnie wyświetla wszystko poprawnie

Podobne pytania

0 głosów
1 odpowiedź 658 wizyt
pytanie zadane 3 czerwca 2019 w PHP przez Ania2019 Użytkownik (530 p.)
0 głosów
2 odpowiedzi 509 wizyt
pytanie zadane 1 maja 2021 w JavaScript przez ShockWave Bywalec (2,350 p.)
0 głosów
0 odpowiedzi 151 wizyt
pytanie zadane 11 grudnia 2016 w JavaScript przez kwiec.kwiec Nowicjusz (140 p.)

92,631 zapytań

141,498 odpowiedzi

319,869 komentarzy

62,011 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...