2013-04-13 3 views
2

PHP에서 일부 데이터를 읽으려는 PHP를 사용하려고합니다. JSON에 익숙하지 않고 XML 경험이 없습니다. 그럼 좋은 출발 이군.PHP에서 XML 및 JSON 읽기

문제의 자원이다 : 그것은 매우 구조화처럼

http://scores.nbcsports.msnbc.com/ticker/data/gamesMSNBC.js.asp?jsonp=true&sport=MLB&period=20130413

이 페이지의 소스를 보면, 그것은 보인다. 나는이 URL에 file_get_contentssimplexml_load_file을 모두 사용하여 어떤 일이 일어나는지 보려고했습니다. 첫 번째 경우에는 브라우저에 표시되는 텍스트 만 제공됩니다 (익숙하지 않은 눈에는 빈 배열처럼 보입니다). 두 번째 경우는 단순히 실패합니다 ('start tag expected').

이 데이터의 형식은 무엇이며 어떻게 액세스해야합니까? 어떻게하면 데이터를 내리고 특정 태그의 값을 꺼낼 수 있습니까?

업데이트

나는 나는 또한 아무 소용에 URL을 json_decode 에코하려한다는 얘기를 깜빡 했네요. 전혀 아무 것도 울려지지 않았습니다.

+1

JSON과 XML은 물론, 서로 다른 두 가지. Ajax에서 JSON 또는 XML을 사용할 수도있다 (아직 세 번째). PHP는 JSON과 XML 모두를위한 훌륭한 라이브러리를 가지고 있습니다 : [PHP/JSON] (http://www.phptutorial.info/?json), [PHP/XML] (http://www.phptutorial.info/index.php? refs.xml) 및 [XML 시작을 포함한 15 분 PHP] (http://www.ibm.com/developerworks/xml/library/x-xmlphp1/)를 참조하십시오. 아쉽게도 developerworks 링크가 사이트 유지 보수를 위해 잠시 중단되었습니다. ( – paulsm4

+0

그래, 나는 그것을 성공했지만 성공하지 못한 채로 처리하려고 시도했습니다. 내가 다루는 것을 보지 못했습니다. –

+0

감사합니다. .하지만 JSON 추출을 시도 할 수 있도록 전체 내용을 가져 오는 방법을 잘 모르겠습니다. –

답변

4

당신의 연결이 구성되어

http://scores.nbcsports.msnbc.com/ticker/data/gamesMSNBC.js.asp?jsonp=true&sport=MLB&period=20130413

shsMSNBCTicker.loadGamesData({ 
"sport": "MLB", 
"period": "20130413", 
"games": [ 
"<ticker-entry gamecode=\"330413105\" gametype=\"Regular Season\" league=\"AL\"><visiting-team display_name=\"Chi White Sox\" alias=\"CWS\" nickname=\"White Sox\" id=\"4\" division=\"ALC\" league=\"AL\" score=\"4\"><score heading=\"1\" value=\"2\"></score><score heading=\"2\" value=\"0\"></score><score heading=\"3\" value=\"0\"></score><score heading=\"4\" value=\"0\"></score><score heading=\"5\" value=\"0\"></score><score heading=\"6\" value=\"0\"></score><score heading=\"7\" value=\"2\"></score><score heading=\"8\" value=\"0\"></score><score heading=\"R\" value=\"4\"></score><score heading=\"H\" value=\"6\"></score><score heading=\"E\" value=\"0\"></score></visiting-team><home-team display_name=\"Cleveland\" alias=\"Cle\" nickname=\"Indians\" id=\"5\" division=\"ALC\" league=\"AL\" score=\"9\"><score heading=\"1\" value=\"2\"></score><score heading=\"2\" value=\"0\"></score><score heading=\"3\" value=\"1\"></score><score heading=\"4\" value=\"0\"></score><score heading=\"5\" value=\"6\"></score><score heading=\"6\" value=\"0\"></score><score heading=\"7\" value=\"0\"></score><score heading=\"R\" value=\"9\"></score><score heading=\"H\" value=\"9\"></score><score heading=\"E\" value=\"1\"></score></home-team><gamestate status=\"In-Progress\" display_status1=\"Top\" display_status2=\"8th\" href=\"http://scores.nbcsports.msnbc.com/mlb/boxscore.asp?gamecode=330413105\" tv=\"CSN/STOh\" gametime=\"4:05 PM\" gamedate=\"4/13\" is-dst=\"1\" is-world-dst=\"1\" reason=\"\"></gamestate></ticker-entry>" 
,"<ticker-entry gamecode=\"330413110\" gametype=\"Regular Season\" league=\"AL\"><visiting-team display_name=\"Baltimore\" alias=\"Bal\" nickname=\"Orioles\" id=\"1\" division=\"ALE\" league=\"AL\" score=\"5\"><score heading=\"1\" value=\"1\"></score><score heading=\"2\" value=\"1\"></score><score heading=\"3\" value=\"2\"></score><score heading=\"4\" value=\"1\"></score><score heading=\"5\" value=\"0\"></score><score heading=\"6\" value=\"0\"></score><score heading=\"7\" value=\"0\"></score><score heading=\"R\" value=\"5\"></score><score heading=\"H\" value=\"10\"></score><score heading=\"E\" value=\"1\"></score></visiting-team><home-team display_name=\"NY Yankees\" alias=\"NYY\" nickname=\"Yankees\" id=\"10\" division=\"ALE\" league=\"AL\" score=\"3\"><score heading=\"1\" value=\"0\"></score><score heading=\"2\" value=\"2\"></score><score heading=\"3\" value=\"0\"></score><score heading=\"4\" value=\"0\"></score><score heading=\"5\" value=\"0\"></score><score heading=\"6\" value=\"1\"></score><score heading=\"7\" value=\"0\"></score><score heading=\"R\" value=\"3\"></score><score heading=\"H\" value=\"8\"></score><score heading=\"E\" value=\"1\"></score></home-team><gamestate status=\"In-Progress\" display_status1=\"Bot\" display_status2=\"7th\" href=\"http://scores.nbcsports.msnbc.com/mlb/boxscore.asp?gamecode=330413110\" tv=\"MASN/YES\" gametime=\"4:05 PM\" gamedate=\"4/13\" is-dst=\"1\" is-world-dst=\"1\" reason=\"\"></gamestate></ticker-entry>" 
,"<ticker-entry gamecode=\"330413111\" gametype=\"Regular Season\" league=\"AL\"><visiting-team display_name=\"Detroit\" alias=\"Det\" nickname=\"Tigers\" id=\"6\" division=\"ALC\" league=\"AL\" score=\"7\"><score heading=\"1\" value=\"0\"></score><score heading=\"2\" value=\"0\"></score><score heading=\"3\" value=\"1\"></score><score heading=\"4\" value=\"4\"></score><score heading=\"5\" value=\"0\"></score><score heading=\"6\" value=\"2\"></score><score heading=\"7\" value=\"0\"></score><score heading=\"R\" value=\"7\"></score><score heading=\"H\" value=\"9\"></score><score heading=\"E\" value=\"0\"></score></visiting-team><home-team display_name=\"Oakland\" alias=\"Oak\" nickname=\"Athletics\" id=\"11\" division=\"ALW\" league=\"AL\" score=\"1\"><score heading=\"1\" value=\"0\"></score><score heading=\"2\" value=\"1\"></score><score heading=\"3\" value=\"0\"></score><score heading=\"4\" value=\"0\"></score><score heading=\"5\" value=\"0\"></score><score heading=\"6\" value=\"0\"></score><score heading=\"7\" value=\"0\"></score><score heading=\"R\" value=\"1\"></score><score heading=\"H\" value=\"3\"></score><score heading=\"E\" value=\"0\"></score></home-team><gamestate status=\"In-Progress\" display_status1=\"Bot\" display_status2=\"7th\" href=\"http://scores.nbcsports.msnbc.com/mlb/boxscore.asp?gamecode=330413111\" tv=\"FSDT/CSCA\" gametime=\"4:05 PM\" gamedate=\"4/13\" is-dst=\"1\" is-world-dst=\"1\" reason=\"\"></gamestate></ticker-entry>" 
,"<ticker-entry gamecode=\"330413109\" gametype=\"Regular Season\" league=\"IL\"><visiting-team display_name=\"NY Mets\" alias=\"NYM\" nickname=\"Mets\" id=\"21\" division=\"NLE\" league=\"NL\" score=\"4\"><score heading=\"1\" value=\"0\"></score><score heading=\"2\" value=\"0\"></score><score heading=\"3\" value=\"0\"></score><score heading=\"4\" value=\"0\"></score><score heading=\"5\" value=\"4\"></score><score heading=\"6\" value=\"0\"></score><score heading=\"7\" value=\"0\"></score><score heading=\"8\" value=\"0\"></score><score heading=\"R\" value=\"4\"></score><score heading=\"H\" value=\"9\"></score><score heading=\"E\" value=\"0\"></score></visiting-team><home-team display_name=\"Minnesota\" alias=\"Min\" nickname=\"Twins\" id=\"9\" division=\"ALC\" league=\"AL\" score=\"1\"><score heading=\"1\" value=\"0\"></score><score heading=\"2\" value=\"0\"></score><score heading=\"3\" value=\"0\"></score><score heading=\"4\" value=\"0\"></score><score heading=\"5\" value=\"0\"></score><score heading=\"6\" value=\"0\"></score><score heading=\"7\" value=\"1\"></score><score heading=\"8\" value=\"0\"></score><score heading=\"R\" value=\"1\"></score><score heading=\"H\" value=\"1\"></score><score heading=\"E\" value=\"0\"></score></home-team><gamestate status=\"In-Progress\" display_status1=\"Bot\" display_status2=\"8th\" href=\"http://scores.nbcsports.msnbc.com/mlb/boxscore.asp?gamecode=330413109\" tv=\"SNY/FSN\" gametime=\"4:10 PM\" gamedate=\"4/13\" is-dst=\"1\" is-world-dst=\"1\" reason=\"\"></gamestate></ticker-entry>" 
,"<ticker-entry gamecode=\"330413124\" gametype=\"Regular Season\" league=\"NL\"><visiting-team display_name=\"Milwaukee\" alias=\"Mil\" nickname=\"Brewers\" id=\"8\" division=\"NLC\" league=\"NL\" score=\"0\"><score heading=\"1\" value=\"0\"></score><score heading=\"2\" value=\"0\"></score><score heading=\"3\" value=\"0\"></score><score heading=\"4\" value=\"0\"></score><score heading=\"5\" value=\"0\"></score><score heading=\"6\" value=\"0\"></score><score heading=\"7\" value=\"0\"></score><score heading=\"R\" value=\"0\"></score><score heading=\"H\" value=\"3\"></score><score heading=\"E\" value=\"1\"></score></visiting-team><home-team display_name=\"St. Louis\" alias=\"StL\" nickname=\"Cardinals\" id=\"24\" division=\"NLC\" league=\"NL\" score=\"8\"><score heading=\"1\" value=\"0\"></score><score heading=\"2\" value=\"0\"></score><score heading=\"3\" value=\"1\"></score><score heading=\"4\" value=\"0\"></score><score heading=\"5\" value=\"0\"></score><score heading=\"6\" value=\"7\"></score><score heading=\"R\" value=\"8\"></score><score heading=\"H\" value=\"10\"></score><score heading=\"E\" value=\"0\"></score></home-team><gamestate status=\"In-Progress\" display_status1=\"Top\" display_status2=\"7th\" href=\"http://scores.nbcsports.msnbc.com/mlb/boxscore.asp?gamecode=330413124\" tv=\"FSWI/FSMW\" gametime=\"4:15 PM\" gamedate=\"4/13\" is-dst=\"1\" is-world-dst=\"1\" reason=\"\"></gamestate></ticker-entry>" 
,"<ticker-entry gamecode=\"330413123\" gametype=\"Regular Season\" league=\"NL\"><visiting-team display_name=\"Cincinnati\" alias=\"Cin\" nickname=\"Reds\" id=\"17\" division=\"NLC\" league=\"NL\" score=\"\"><score heading=\"R\" value=\"\"></score><score heading=\"H\" value=\"\"></score><score heading=\"E\" value=\"\"></score></visiting-team><home-team display_name=\"Pittsburgh\" alias=\"Pit\" nickname=\"Pirates\" id=\"23\" division=\"NLC\" league=\"NL\" score=\"\"><score heading=\"R\" value=\"\"></score><score heading=\"H\" value=\"\"></score><score heading=\"E\" value=\"\"></score></home-team><gamestate status=\"Pre-Game\" display_status1=\"7:05 PM\" display_status2=\"\" href=\"http://scores.nbcsports.msnbc.com/mlb/preview.asp?g=330413123\" tv=\"FSOH/ROOT\" gametime=\"7:05 PM\" gamedate=\"4/13\" is-dst=\"1\" is-world-dst=\"1\" reason=\"\"></gamestate></ticker-entry>" 
,"<ticker-entry gamecode=\"330413107\" gametype=\"Regular Season\" league=\"AL\"><visiting-team display_name=\"Toronto\" alias=\"Tor\" nickname=\"Blue Jays\" id=\"14\" division=\"ALE\" league=\"AL\" score=\"\"><score heading=\"R\" value=\"\"></score><score heading=\"H\" value=\"\"></score><score heading=\"E\" value=\"\"></score></visiting-team><home-team display_name=\"Kansas City\" alias=\"KC\" nickname=\"Royals\" id=\"7\" division=\"ALC\" league=\"AL\" score=\"\"><score heading=\"R\" value=\"\"></score><score heading=\"H\" value=\"\"></score><score heading=\"E\" value=\"\"></score></home-team><gamestate status=\"Pre-Game\" display_status1=\"7:10 PM\" display_status2=\"\" href=\"http://scores.nbcsports.msnbc.com/mlb/preview.asp?g=330413107\" tv=\"RSN/FSKC\" gametime=\"7:10 PM\" gamedate=\"4/13\" is-dst=\"1\" is-world-dst=\"1\" reason=\"\"></gamestate></ticker-entry>" 
,"<ticker-entry gamecode=\"330413128\" gametype=\"Regular Season\" league=\"NL\"><visiting-team display_name=\"Philadelphia\" alias=\"Phi\" nickname=\"Phillies\" id=\"22\" division=\"NLE\" league=\"NL\" score=\"\"><score heading=\"R\" value=\"\"></score><score heading=\"H\" value=\"\"></score><score heading=\"E\" value=\"\"></score></visiting-team><home-team display_name=\"Miami\" alias=\"Mia\" nickname=\"Marlins\" id=\"28\" division=\"NLE\" league=\"NL\" score=\"\"><score heading=\"R\" value=\"\"></score><score heading=\"H\" value=\"\"></score><score heading=\"E\" value=\"\"></score></home-team><gamestate status=\"Pre-Game\" display_status1=\"7:10 PM\" display_status2=\"\" href=\"http://scores.nbcsports.msnbc.com/mlb/preview.asp?g=330413128\" tv=\"CSN/FSFL\" gametime=\"7:10 PM\" gamedate=\"4/13\" is-dst=\"1\" is-world-dst=\"1\" reason=\"\"></gamestate></ticker-entry>" 
,"<ticker-entry gamecode=\"330413129\" gametype=\"Regular Season\" league=\"NL\"><visiting-team display_name=\"LA Dodgers\" alias=\"LAD\" nickname=\"Dodgers\" id=\"19\" division=\"NLW\" league=\"NL\" score=\"\"><score heading=\"R\" value=\"\"></score><score heading=\"H\" value=\"\"></score><score heading=\"E\" value=\"\"></score></visiting-team><home-team display_name=\"Arizona\" alias=\"Ari\" nickname=\"Diamondbacks\" id=\"29\" division=\"NLW\" league=\"NL\" score=\"\"><score heading=\"R\" value=\"\"></score><score heading=\"H\" value=\"\"></score><score heading=\"E\" value=\"\"></score></home-team><gamestate status=\"Pre-Game\" display_status1=\"8:10 PM\" display_status2=\"\" href=\"http://scores.nbcsports.msnbc.com/mlb/preview.asp?g=330413129\" tv=\"KCAL/FSAZ\" gametime=\"8:10 PM\" gamedate=\"4/13\" is-dst=\"1\" is-world-dst=\"1\" reason=\"\"></gamestate></ticker-entry>" 
,"<ticker-entry gamecode=\"330413125\" gametype=\"Regular Season\" league=\"NL\"><visiting-team display_name=\"Colorado\" alias=\"Col\" nickname=\"Rockies\" id=\"27\" division=\"NLW\" league=\"NL\" score=\"\"><score heading=\"R\" value=\"\"></score><score heading=\"H\" value=\"\"></score><score heading=\"E\" value=\"\"></score></visiting-team><home-team display_name=\"San Diego\" alias=\"SD\" nickname=\"Padres\" id=\"25\" division=\"NLW\" league=\"NL\" score=\"\"><score heading=\"R\" value=\"\"></score><score heading=\"H\" value=\"\"></score><score heading=\"E\" value=\"\"></score></home-team><gamestate status=\"Pre-Game\" display_status1=\"8:40 PM\" display_status2=\"\" href=\"http://scores.nbcsports.msnbc.com/mlb/preview.asp?g=330413125\" tv=\"ROOT/FSSD\" gametime=\"8:40 PM\" gamedate=\"4/13\" is-dst=\"1\" is-world-dst=\"1\" reason=\"\"></gamestate></ticker-entry>" 
,"<ticker-entry gamecode=\"330413103\" gametype=\"Regular Season\" league=\"AL\"><visiting-team display_name=\"Houston\" alias=\"Hou\" nickname=\"Astros\" id=\"18\" division=\"ALW\" league=\"AL\" score=\"\"><score heading=\"R\" value=\"\"></score><score heading=\"H\" value=\"\"></score><score heading=\"E\" value=\"\"></score></visiting-team><home-team display_name=\"LA Angels\" alias=\"LAA\" nickname=\"Angels\" id=\"3\" division=\"ALW\" league=\"AL\" score=\"\"><score heading=\"R\" value=\"\"></score><score heading=\"H\" value=\"\"></score><score heading=\"E\" value=\"\"></score></home-team><gamestate status=\"Pre-Game\" display_status1=\"9:05 PM\" display_status2=\"\" href=\"http://scores.nbcsports.msnbc.com/mlb/preview.asp?g=330413103\" tv=\"CSN/FSW\" gametime=\"9:05 PM\" gamedate=\"4/13\" is-dst=\"1\" is-world-dst=\"1\" reason=\"\"></gamestate></ticker-entry>" 
,"<ticker-entry gamecode=\"330413112\" gametype=\"Regular Season\" league=\"AL\"><visiting-team display_name=\"Texas\" alias=\"Tex\" nickname=\"Rangers\" id=\"13\" division=\"ALW\" league=\"AL\" score=\"\"><score heading=\"R\" value=\"\"></score><score heading=\"H\" value=\"\"></score><score heading=\"E\" value=\"\"></score></visiting-team><home-team display_name=\"Seattle\" alias=\"Sea\" nickname=\"Mariners\" id=\"12\" division=\"ALW\" league=\"AL\" score=\"\"><score heading=\"R\" value=\"\"></score><score heading=\"H\" value=\"\"></score><score heading=\"E\" value=\"\"></score></home-team><gamestate status=\"Pre-Game\" display_status1=\"9:10 PM\" display_status2=\"\" href=\"http://scores.nbcsports.msnbc.com/mlb/preview.asp?g=330413112\" tv=\"FSSW/ROOT\" gametime=\"9:10 PM\" gamedate=\"4/13\" is-dst=\"1\" is-world-dst=\"1\" reason=\"\"></gamestate></ticker-entry>" 
,"<ticker-entry gamecode=\"330413102\" gametype=\"Regular Season\" league=\"AL\"><visiting-team display_name=\"Tampa Bay\" alias=\"TB\" nickname=\"Rays\" id=\"30\" division=\"ALE\" league=\"AL\" score=\"1\"><score heading=\"1\" value=\"0\"></score><score heading=\"2\" value=\"0\"></score><score heading=\"3\" value=\"1\"></score><score heading=\"4\" value=\"0\"></score><score heading=\"5\" value=\"0\"></score><score heading=\"6\" value=\"0\"></score><score heading=\"7\" value=\"0\"></score><score heading=\"8\" value=\"0\"></score><score heading=\"9\" value=\"0\"></score><score heading=\"10\" value=\"0\"></score><score heading=\"R\" value=\"1\"></score><score heading=\"H\" value=\"6\"></score><score heading=\"E\" value=\"1\"></score></visiting-team><home-team display_name=\"Boston\" alias=\"Bos\" nickname=\"Red Sox\" id=\"2\" division=\"ALE\" league=\"AL\" score=\"2\"><score heading=\"1\" value=\"0\"></score><score heading=\"2\" value=\"0\"></score><score heading=\"3\" value=\"0\"></score><score heading=\"4\" value=\"0\"></score><score heading=\"5\" value=\"1\"></score><score heading=\"6\" value=\"0\"></score><score heading=\"7\" value=\"0\"></score><score heading=\"8\" value=\"0\"></score><score heading=\"9\" value=\"0\"></score><score heading=\"10\" value=\"1\"></score><score heading=\"R\" value=\"2\"></score><score heading=\"H\" value=\"7\"></score><score heading=\"E\" value=\"0\"></score></home-team><gamestate status=\"Final\" display_status1=\"Final\" display_status2=\"10\" href=\"http://scores.nbcsports.msnbc.com/mlb/recap.asp?g=330413102\" tv=\"FOX\" gametime=\"1:05 PM\" gamedate=\"4/13\" is-dst=\"1\" is-world-dst=\"1\" reason=\"\"></gamestate></ticker-entry>" 
,"<ticker-entry gamecode=\"330413116\" gametype=\"Regular Season\" league=\"NL\"><visiting-team display_name=\"San Francisco\" alias=\"SF\" nickname=\"Giants\" id=\"26\" division=\"NLW\" league=\"NL\" score=\"3\"><score heading=\"1\" value=\"0\"></score><score heading=\"2\" value=\"0\"></score><score heading=\"3\" value=\"0\"></score><score heading=\"4\" value=\"0\"></score><score heading=\"5\" value=\"1\"></score><score heading=\"6\" value=\"1\"></score><score heading=\"7\" value=\"1\"></score><score heading=\"8\" value=\"0\"></score><score heading=\"9\" value=\"0\"></score><score heading=\"R\" value=\"3\"></score><score heading=\"H\" value=\"9\"></score><score heading=\"E\" value=\"1\"></score></visiting-team><home-team display_name=\"Chi Cubs\" alias=\"ChC\" nickname=\"Cubs\" id=\"16\" division=\"NLC\" league=\"NL\" score=\"2\"><score heading=\"1\" value=\"0\"></score><score heading=\"2\" value=\"0\"></score><score heading=\"3\" value=\"0\"></score><score heading=\"4\" value=\"0\"></score><score heading=\"5\" value=\"0\"></score><score heading=\"6\" value=\"0\"></score><score heading=\"7\" value=\"2\"></score><score heading=\"8\" value=\"0\"></score><score heading=\"9\" value=\"0\"></score><score heading=\"R\" value=\"2\"></score><score heading=\"H\" value=\"7\"></score><score heading=\"E\" value=\"0\"></score></home-team><gamestate status=\"Final\" display_status1=\"Final\" display_status2=\"\" href=\"http://scores.nbcsports.msnbc.com/mlb/recap.asp?g=330413116\" tv=\"FOX\" gametime=\"1:05 PM\" gamedate=\"4/13\" is-dst=\"1\" is-world-dst=\"1\" reason=\"\"></gamestate></ticker-entry>" 
,"<ticker-entry gamecode=\"330413120\" gametype=\"Regular Season\" league=\"NL\"><visiting-team display_name=\"Atlanta\" alias=\"Atl\" nickname=\"Braves\" id=\"15\" division=\"NLE\" league=\"NL\" score=\"3\"><score heading=\"1\" value=\"0\"></score><score heading=\"2\" value=\"0\"></score><score heading=\"3\" value=\"2\"></score><score heading=\"4\" value=\"0\"></score><score heading=\"5\" value=\"0\"></score><score heading=\"6\" value=\"0\"></score><score heading=\"7\" value=\"0\"></score><score heading=\"8\" value=\"0\"></score><score heading=\"9\" value=\"1\"></score><score heading=\"R\" value=\"3\"></score><score heading=\"H\" value=\"8\"></score><score heading=\"E\" value=\"1\"></score></visiting-team><home-team display_name=\"Washington\" alias=\"Was\" nickname=\"Nationals\" id=\"20\" division=\"NLE\" league=\"NL\" score=\"1\"><score heading=\"1\" value=\"0\"></score><score heading=\"2\" value=\"0\"></score><score heading=\"3\" value=\"0\"></score><score heading=\"4\" value=\"0\"></score><score heading=\"5\" value=\"1\"></score><score heading=\"6\" value=\"0\"></score><score heading=\"7\" value=\"0\"></score><score heading=\"8\" value=\"0\"></score><score heading=\"9\" value=\"0\"></score><score heading=\"R\" value=\"1\"></score><score heading=\"H\" value=\"4\"></score><score heading=\"E\" value=\"1\"></score></home-team><gamestate status=\"Final\" display_status1=\"Final\" display_status2=\"\" href=\"http://scores.nbcsports.msnbc.com/mlb/recap.asp?g=330413120\" tv=\"FOX\" gametime=\"1:05 PM\" gamedate=\"4/13\" is-dst=\"1\" is-world-dst=\"1\" reason=\"\"></gamestate></ticker-entry>" 
]} 
); 

그것은 XML의 무리가 포함 된 JSON 기록이다. PHP로 XML "데이터 레코드"의 배열과 JSON "envelope"을 모두 파싱 할 수 있습니다. 위 링크를 통해 올바른 방향으로 안내해야합니다.

+1

흥미 롭습니다. 링크를 클릭하면 XML이 표시되지 않습니다. 하지만 링크에서'jsonp = true &'를 제거하여 패딩을 끌 수 있습니다. ^^ – Jon

+0

XML을 볼 때 XML을 볼 수 없습니다. 우리가 여기서 무엇을 놓치고 있니? –

1

PHP는 있습니다

json_decode(); 

JSON을 읽는. 괄호 안에있는 데이터는 JSON 객체입니다.

+0

정확히 JSON 개체가 아닙니다. 다시 보겠습니다. – 1337holiday

+0

정말요? 너 내 대답을 downvote? loadGamesData() 함수 내부의 데이터는 실제로 JSON입니다. 이는 제가 말한 것과 정확히 같습니다. – JRL

1

편집 디에고가 지적한 바와 같이, 단지 전체 매개 변수 jsonp=true을 제거, 현재 URL을 사용하고 단지 원시 JSON을 구문 분석니까.

도움이되는지 확인하십시오. 본질적으로 우리는 정규 표현식을 사용하여 {} 사이의 모든 것을 추출한 다음 각 일치에 json_decode()를 적용합니다.

<?php 

    $data = 'shsMSNBCTicker.loadGamesData({ "sport": "MLB", "period": "20130413", "games": [ "" ,"" ,"" ,"" ,"" ,"" ,"" ,"" ,"" ,"" ,"" ,"" ,"" ,"" ,"" ]});'; 

    //this will extract everything between and including the {} 
    preg_match("/(\{.*\})/", $data, $matches); 

    echo "<pre>"; 
    //print everything that matched 
    print_r($matches); 

    //now you can decode it 
    $firstMatch = json_decode($matches[0]); 

    //print out the first match 
    print_r($firstMatch); 

    //now you can do stuff like 

    echo $firstMatch->sport; 

?> 
+2

... 아니면 그냥 JSON 대신 JSONP를 출력하도록 웹 서비스에 알려주는 URL에서'jsonp = true' 매개 변수를 제거하면됩니다. –

+0

yepp 나는 정규 표현식을 사용하여 순수한 쓰레기에 넣을 수 있음을 알았지 만 중괄호 사이의 데이터가 손상되지 않는 한 preg_match는 여전히 유효한 모든 json 객체를 추출 할 수 있습니다. – 1337holiday

+0

@ DiegoAgulló 예! 네 말이 맞아,이 사람이해야 할 일이야. – 1337holiday

3

을하는 데 도움이

'희망 그냥 이런 식으로 작업을 수행합니다

$url = 'http://scores.nbcsports.msnbc.com/ticker/data/gamesMSNBC.js.asp?sport=MLB&period=20130413'; 

$data = file_get_contents($url); 
$records = json_decode($data); 

$xmlDocument = implode("\n", $records->games); 
$xmlObjects = simplexml_load_string('<?xml version=\'1.0\'?> <document>'. $xmlDocument . '</document>'); 

foreach($xmlObjects AS $xml){ 
    // get all attributes 
    foreach($xml->attributes() AS $attribute=>$value){ 
     echo $attribute . ' = '.$value ."\n"; // i.e: gamecode = 330413105 
    } 

    // visiting team: 
    $visitingTeam='visiting-team'; 
    print_r($xml->$visitingTeam); 

    // get visiting team attributes, like display_name, etc 
    foreach($xml->$visitingTeam->attributes() AS $attribute => $value){ 
     echo $attribute . ' = '.$value ."\n"; 
    } 
}