Autor | Zpráva | ||
---|---|---|---|
MCMichal1 Profil |
#1 · Zasláno: 3. 6. 2014, 20:21:34
Zdravím,
jak mám vyčíst z PHP jen určité věci? Mám výsledek zhruba takový (je to jen výřez, ale celý soubor je v tomto stylu): "gamerscore": 66745, "reputation": 20, "presence": "Last seen 10 minutes ago playing Xbox Dashboard", "online": false, "motto": "I love lamp", "name": "LJ", "location": "South Florida, USA", |
||
xROAL Profil |
#2 · Zasláno: 3. 6. 2014, 20:35:04
Toto vyzerá ako JSON (ktorý má tvar
{kľúč: hodnota, kľúč2: hodnota2, ...} ).
V takom prípade by bolo možné použiť funkciu json_decode(), ktorá by ti z toho spravila normálne pole, alebo objekt (kde budeš môcť k jednotlivým prvkom pristupovať ako $pole['kľúč']; či $objekt->kľúč; ).
|
||
yFang Profil |
MCMichal1:
Pokud máš možnost to mírně upravit a udělat z toho JSON, dala by se v PHP použít funkce json_decode, která by ti to převedla do asociativního pole nebo objektu. Edit: Ok, pozdě :) |
||
MCMichal1 Profil |
#4 · Zasláno: 3. 6. 2014, 20:51:21 · Upravil/a: MCMichal1
Ano, je to JSON... díky :) Celkově to vypadá takto:
{ "status": "success", "version": "2.0", "data": { "gamertag": "MichalVasicek1", "tier": "gold", "badges": { "xboxlaunchteam": false, "nxelaunchteam": false, "kinectlaunchteam": false }, "avatar": { "full": "http://avatar.xboxlive.com/avatar/MichalVasicek1/avatar-body.png", "small": "http://avatar.xboxlive.com/avatar/MichalVasicek1/avatarpic-s.png", "large": "http://avatar.xboxlive.com/avatar/MichalVasicek1/avatarpic-l.png", "tile": "http://avatar.xboxlive.com/avatar/MichalVasicek1/avatarpic-l.png" }, "gamerscore": 5835, "reputation": 0, "presence": "Last seen less than a minute ago playing Xbox.com", "online": false, "motto": "To Äumíš na mÄ?", "name": "Michal Vašíček", "location": "Vyškov", "biography": "", "recentactivity": [ { "id": 1481115753, "hid": "58480869", "isapp": false, "title": "Kinect PlayFit", "artwork": { "small": "http://download.xbox.com/content/images/66acd000-77fe-1000-9115-d80258480869/1033/boxartsm.jpg", "large": "http://download.xbox.com/content/images/66acd000-77fe-1000-9115-d80258480869/1033/boxartlg.jpg" }, "gamerscore": { "current": 40, "total": 200 }, "achievements": { "current": 5, "total": 20 }, "progress": 25, "lastplayed": 1401819136 }, { "id": 1297287638, "hid": "4d5309d6", "isapp": false, "title": "KS: Season Two", "artwork": { "small": "http://download.xbox.com/content/images/66acd000-77fe-1000-9115-d8024d5309d6/1033/boxartsm.jpg", "large": "http://download.xbox.com/content/images/66acd000-77fe-1000-9115-d8024d5309d6/1033/boxartlg.jpg" }, "gamerscore": { "current": 530, "total": 1500 }, "achievements": { "current": 28, "total": 70 }, "progress": 40, "lastplayed": 1401817892 }, { "id": 1480659987, "hid": "58411413", "isapp": false, "title": "Walking Dead: Season 2", "artwork": { "small": "http://download.xbox.com/content/images/66acd000-77fe-1000-9115-d80258411413/1033/boxartsm.jpg", "large": "http://download.xbox.com/content/images/66acd000-77fe-1000-9115-d80258411413/1033/boxartlg.jpg" }, "gamerscore": { "current": 220, "total": 300 }, "achievements": { "current": 18, "total": 24 }, "progress": 75, "lastplayed": 1401617904 }, { "id": 1414596717, "hid": "5451086d", "isapp": false, "title": "Saints Row: The Third", "artwork": { "small": "http://download.xbox.com/content/images/66acd000-77fe-1000-9115-d8025451086d/1033/boxartsm.jpg", "large": "http://download.xbox.com/content/images/66acd000-77fe-1000-9115-d8025451086d/1033/boxartlg.jpg" }, "gamerscore": { "current": 0, "total": 1300 }, "achievements": { "current": 0, "total": 80 }, "progress": 0, "lastplayed": 1401609245 }, { "id": 1397819396, "hid": "53510804", "isapp": false, "title": "Hitman: Absolution™", "artwork": { "small": "http://download.xbox.com/content/images/66acd000-77fe-1000-9115-d80253510804/1033/boxartsm.jpg", "large": "http://download.xbox.com/content/images/66acd000-77fe-1000-9115-d80253510804/1033/boxartlg.jpg" }, "gamerscore": { "current": 200, "total": 1000 }, "achievements": { "current": 11, "total": 46 }, "progress": 23.9, "lastplayed": 1401607088 } ], "freshness": "from cache" }, "runtime": 0.003 } OK, můžete mi ještě někdo napsat komplet script? Toto třeba nefunguje :( $json = json_decode(file_get_contents("/api/profile.php?gamertag=MichalVasicek1")); echo $json['location']; |
||
Medvídek Profil |
#5 · Zasláno: 3. 6. 2014, 21:12:08
MCMichal1:
$json = json_decode(file_get_contents("/api/profile.php?gamertag=MichalVasicek1"), true); echo $json["data"]["location"]; |
||
MCMichal1 Profil |
#6 · Zasláno: 3. 6. 2014, 21:13:51
A nic to nevypíše :(
|
||
Medvídek Profil |
MCMichal1:
No chybí ti tam ještě volání, kde se to api nachází, viz: file_get_contents("/api/profile.php?gamertag=MichalVasicek1") |
||
MCMichal1 Profil |
No, a z tama by to mělo brát, ne?
//API běží u mě... prostě "localhost/***" (*** je to, co je ve file_get_contents) |
||
Medvídek Profil |
MCMichal1:
I tak bych volal s celou adresou, jinak ti to vrátí obsah toho lokálního souboru, určitě nezpracuje GET metodu. |
||
MCMichal1 Profil |
#10 · Zasláno: 3. 6. 2014, 21:29:07
ANO! Celá adresa pomohla, kdybych mohl, zulíbal bych ti mozek!
Díky, díky, díky, díky! |
||
Časová prodleva: 9 let
|
0