czvpka | 2021-02-17 10:25:59 UTC | #1
Witam. Mam problem z wyciągnięciem danych z JSON w PHP. Mianowicie nie mogę sobie poradzić z wyciągnięciem danych z JSON a potem wyrzuceniem ich, próbowałem wszystkiego, ale PHP wywalał mi błąd Trying to get property of non-object
Tutaj (raw) jest JSON, który chcę przeparsować (w PHP użyłem $json = json_decode(file_get_content($url))
;)) Chcę z niego wyciągnąć wszystkie thumbnails znajdujące się w snippet. Pozdrawiam!
SystemZ | 2017-06-02 14:49:39 UTC | #2
Wygląda ok, w tym co wkleiłeś brakowało literki s filegetcontents
php -v
PHP 7.0.18-0ubuntu0.16.04.1 (cli) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.0.18-0ubuntu0.16.04.1, Copyright (c) 1999-2017, by Zend Technologies
<?php
$url = "https://pastebin.com/raw/y6mrNJyj";
$json = json_decode(file_get_contents($url));
$item = $json->items[0];
var_dump($item->snippet->thumbnails);
object(stdClass)#6 (5) {
["default"]=>
object(stdClass)#5 (3) {
["url"]=>
string(46) "https://i.ytimg.com/vi/1pkiMqMfc2Y/default.jpg"
["width"]=>
int(120)
["height"]=>
int(90)
}
["medium"]=>
object(stdClass)#7 (3) {
["url"]=>
string(48) "https://i.ytimg.com/vi/1pkiMqMfc2Y/mqdefault.jpg"
["width"]=>
int(320)
["height"]=>
int(180)
}
["high"]=>
object(stdClass)#8 (3) {
["url"]=>
string(48) "https://i.ytimg.com/vi/1pkiMqMfc2Y/hqdefault.jpg"
["width"]=>
int(480)
["height"]=>
int(360)
}
["standard"]=>
object(stdClass)#9 (3) {
["url"]=>
string(48) "https://i.ytimg.com/vi/1pkiMqMfc2Y/sddefault.jpg"
["width"]=>
int(640)
["height"]=>
int(480)
}
["maxres"]=>
object(stdClass)#10 (3) {
["url"]=>
string(52) "https://i.ytimg.com/vi/1pkiMqMfc2Y/maxresdefault.jpg"
["width"]=>
int(1280)
["height"]=>
int(720)
}
}
czvpka | 2017-06-02 14:59:53 UTC | #3
@SystemZ dzięki wielkie, wreszcie mi się udało uzyskać pożądany efekt, wyciągnąłem wszystkie URL, teraz mogę zwrócić sobie najlepszą jakość miniatury, pozdrawiam i dziękuje jeszcze raz :smiley:
system | 2021-02-17 10:26:15 UTC | #4
Ten temat został automatycznie zamknięty 32 dni po ostatnim wpisie. Tworzenie nowych odpowiedzi nie jest już możliwe.