2013-09-25 3 views
1

위키 피 디아를 얻으려면 MediaWiki API를 사용하십시오. PHP는 특정 국가에 대한 정보를 PHP로 직렬화하여 제공합니다.위키 백과 PHP - 결과 처리

http://en.wikipedia.org/w/api.php?action=query&titles=Belgium&prop=revisions&rvprop=content&rvsection=0&format=php 

내 질문에 내가이 배열에서 특정 필드를 얻는 방법

은? f.e :

  • 자본
  • 인구 조사
  • 지도 자막처럼 (지역, 공식 언어, ...)

나는이 출력에 익숙하지 난 ... 감사합니다!

답변

0

직렬화 된 PHP처럼 보이며 다른 사람이 대답 한대로 unserialize() 수 있습니다. 내가 대신 JSON 형식을 사용하는 것이 좋습니다 것 :

http://en.wikipedia.org/w/api.php?action=query&titles=Belgium&prop=revisions&rvprop=content&rvsection=0&format= JSON

그런 다음 JSON 응답을 구문 분석 얻을 연관 배열로 변환하는 json_decode()를 사용할 수 있습니다

$json = file_get_contents($file); 
$decoded = json_decode($json, TRUE); 

foreach ($decoded as $key => $value) { 
    // get the details you need 
} 
+0

을 것이다 빠르다. 여기에 json이 필요 없습니다. – hek2mgl

1

API는 또는 그와 비슷한 내용의 capital과 같은 속성에 액세스 할 수 없습니다. 위젯을 페이지 제목과 같은 몇 가지 추가 정보와 함께 wiki 소스 코드로 받아 볼 수 있습니다. 위키 페이지는 예를 들어 프로그래밍 언어, 꽃, 자동차 또는 국가에 대한 정보를 포함 할 수 있습니다. 특별한 데이터 필드가없는 마크 업입니다.

응답 형식은 serialize 된 PHP 데이터입니다. 배열로 구문 분석 unserialize를 사용하지만, belgium에 대한 구조화 된 정보를 얻을 기대하지 않습니다 :

$response = file_get_contents('http://en.wikipedia.org/w/api.php?action=query&titles=Belgium&prop=revisions&rvprop=content&rvsection=0&format=php'); 
$data = unserialize($response); 
var_dump($data); 
+0

감사합니다. 모든 대답이 나에게 분명했습니다. 이 하나가 제 질문에 잘 대답합니다! 나는 PHP 함수를 사용하여이 내용을 유용한 배열로 분해 할 것이다. – user1141796

+0

좋아, 행복한 근근이 살아가는 것 :) – hek2mgl

0

이 기능을 사용 unserialize() : 나는 "PHP"형식과 함께 때 unserialize 사용 같아요

$array = file_get_contents('http://en.wikipedia.org/w/api.php?action=query&titles=Belgium&prop=revisions&rvprop=content&rvsection=0&format=json'); 
$array = unserialize($array); 
print_r($array); 
+0

예, 나에게 분명했지만 내용은 | leader_title1 = [[벨기에 군주 | 왕]] | leader_name1 = [[Philippe of Belgium | Philippe King]] | leader_title2 = [[벨기에 총리 | 국무 총리] | leader_name2 = [[Elio Di Rupo]] | 입법부 = [[벨기에 연방 의회 | 연방 의회]] | upper_house = [[상원 (벨기에) | 상원]] – user1141796