주어진 영화에 대한 제작 회사 및 배포 회사 정보를 추출해야하며 Freebase를 사용하고 있습니다. 일은 결코 JSON을 사용한 적이 없으며 PHP 파일과 쿼리를 통합하는 방법을 모른다.PHP와 JSON Freebase에서 데이터를 가져 오는 쿼리
내가 읽었던 튜토리얼은 이것에 대해 명확하지 않으므로 언제나처럼 내가 항상 얻는 도움을 얻기 위해 여기에 온다! :)
그래서 ... 나는이 꺼내 필요가있는 정보는이 Freebase Query Editor입니다 그리고 내가 가지고있는 PHP이 (주석 라인은 내가 잘못 및/또는 선이에서 것을 확신 라인입니다입니다 튜토리얼 나는 어떤 성공 here 뒤를 :
$moviename = "The Matrix";
// [{ "name": "The Matrix", "type": "/film/film", "production_companies": [{ "name": null }], "distributors": [{ "distributor": [{ "name": null }] }] }]
$simplequery = array('name'=>$moviename, 'type'=>"/film/film", 'production_companies'=>array('name'=>null));
//{"id":"/topic/en/philip_k_dick", "/film/writer/film":[]}
//$simplequery = array('id'=>$_POST["freebasewriter"], 'name'=>null, '/film/writer/film'=>array(array('name'=>null, 'id'=>null)));
$queryarray = array('q1'=>array('query'=>$simplequery));
$jsonquerystr = json_encode($queryarray);
#run the query
$apiendpoint = "http://sandbox.freebase.com/api/service/mqlread?queries";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "$apiendpoint=$jsonquerystr");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$jsonresultstr = curl_exec($ch);
curl_close($ch);
$jsonquerystr = urlencode(json_encode($queryarray));
//print_r($resultarray);
//$produtoraarray = $resultarray["q1"]["result"]["production_companies"];
//print_r($produtoraarray);
//$produtorarray = $resultarray["q1"]["result"][];
//$freebaseserver = "http://sandbox.freebase.com";
사람이 여기에 나에게 도움을 줄 수 사전에 감사
길 : 하여 많이와 메리 크리스마스 감사합니다?!편집 @Yanir Shahak의 대답은 도움이 지금은이 받고 있어요 :
지금Array ([code] => /api/status/ok [q1] => Array ([code] => /api/status/error [messages] => Array ([0] => Array ([code] => /api/status/error/mql/result [info] => Array ([count] => 3 [result] => Array ([0] => Array ([name] => Warner Bros. Entertainment) [1] => Array ([name] => Village Roadshow Pictures) [2] => Array ([name] => Silver Pictures))) [message] => Unique query may have at most one result. Got 3 [path] => production_companies [query] => Array ([name] => The Matrix [production_companies] => Array ([error_inside] => . [name] =>) [type] => /film/film)))) [status] => 200 OK [transaction_id] => cache;cache02.sandbox.sjc1:8101;2011-12-24T02:01:34Z;0004)
... 내가 배열로 거기에서 데이터를 가지고 어떻게 내가 사용할 수 있습니까? 내가 정의되지 않은 인덱스
//print_r($resultarray);
//$produtoraarray = $resultarray["q1"]["result"]["production_companies"];
//print_r($produtoraarray);
//$produtorarray = $resultarray["q1"]["result"][];
//$freebaseserver = "http://sandbox.freebase.com";
편집 한 내용과 일치하는 답변을 편집했습니다. – Yaniro