1

MediaWiki api を使用して、特定の国に関する情報を PHP でシリアル化した配列をウィキペディアから取得します。

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

私の質問

この配列から特定のフィールドを取得するにはどうすればよいですか? フェのように:

  • 資本
  • 国勢調査
  • 地図のキャプション (地域、公用語など)

私はこの出力に慣れていません...ありがとう!

4

3 に答える 3

1

API は、capitalforbelgiumなどのプロパティにアクセスするためのものではありません。wikiウィキページをソース コードとして、ページ タイトルなどの追加情報とともに取得するだけです。wikiページには、たとえば、プログラミング言語、花、車、または国に関する情報を含めることができます。これは、特別なデータフィールドではなく単なるマークダウンです。

応答形式はシリアライズされた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);
于 2013-09-25T13:47:10.710 に答える
0

シリアライズされたPHPのように見えunserialize()、他の人が答えたようにできます。JSON代わりに次の形式を使用することをお勧めします。

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

json_decode()次に、JSON 応答を解析して連想配列に変換するために使用できます。

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

foreach ($decoded as $key => $value) {
    // get the details you need
}
于 2013-09-25T13:45:46.743 に答える
0

この機能を使用します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 ); 
于 2013-09-25T13:47:51.370 に答える