Доступ к элементам массива внутри объекта объекта

0

Я пытаюсь получить доступ к такой информации, как имя и логотип в разделе компании Infobox, которые были возвращены при выполнении поиска с использованием приведенного ниже кода. Я использовал пример Google. Если команда exit удалена, можно увидеть, что я могу получить доступ к contentformat и contentmodel в объекте [0], но я изо всех сил пытаюсь получить доступ к чему-либо в массиве [*] внутри этого объекта. Простите глупый вопрос, так как я уверен, что мне что-то не хватает, но любая помощь очень ценится.

<html>
<head>
</head>
<body>

<html>
<body>
<h2>Search</h2>
<form method="post">
Search: <input type="text" name="q" value="google" />
<input type="submit" value="Submit">
</form>

<?php
if (isset($_POST['q'])) {
$search = $_POST['q'];


$url_2 = "http://en.wikipedia.org/w/api.php?
action=query&prop=revisions&rvprop=content&format=json&titles=$search&rvsection=0&continue=";
$res_2 = file_get_contents($url_2);
$data_2 = json_decode($res_2);

echo "<pre>";
print_r($data_2);
echo "</pre>";
exit;
?>

<h2>Search results for '<?php echo $search; ?>'</h2>
<ol>
<?php foreach ($data_2->query->pages as $r): 

?>

<li>

<?php echo $r->revisions[0]->contentformat;  ?>

</li>
<?php endforeach; ?>
</ol>

<?php 
}
?>
</body>
</html>
Теги:
object
arrays
wikipedia-api

1 ответ

0

Решение: не используйте Википедию в качестве базы данных, вместо этого используйте Wikidata.org, которая является собственной базой данных.

Документы: http://www.wikidata.org/w/api.php?action=help&modules=wbgetclaims

Пример (логотип Google): http://www.wikidata.org/w/api.php?action=wbgetclaims&entity=Q95&property=P154&format=json >

{"claims":{"P154":[{"id":"Q95$49959725-4b36-6a53-b0ef-79bc19a2474c","mainsnak":{"snaktype":"value","property":"P154","datatype":"commonsMedia","datavalue":{"value":"Logo Google 2013 Official.svg","type":"string"}},...}}}

Если вам нужно найти идентификатор объекта, и вы знаете название статьи на одном языке Википедии, pywikibot может помочь: это будет что-то вроде

page = pywikibot.Page(site, 'Douglas Adams')

и вы можете продолжить оттуда.

  • 0
    спасибо, я действительно ценю это. Я попробую это
  • 0
    Знаете ли вы какой-либо простой способ найти значение сущности?
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню