我正在尝试从 Wikidata API 访问以下属性:id、url、别名、描述和标签,但到目前为止还没有成功。我确定我犯了基本错误,到目前为止只有以下代码。非常感谢有关访问此数据的最佳方式的任何建议。
<html>
<body>
<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'];
$errors = libxml_use_internal_errors(true);
$doc = new DOMDocument();
$doc->loadHTMLFile("https://www.wikidata.org/w/api.php?
action=wbsearchentities&search=Google&format=json&language=en");
libxml_clear_errors();
libxml_use_internal_errors($errors);
}
?>
</body>
</html>
编辑 - 我设法得到一个包含我想要的特定数据的字符串 ($jsonArr)。但是,我想从字符串中获取特定元素的第一个实例,特别是 id、url、别名、描述和标签,即:variable1 - Q95, variable2 - //www.wikidata.org/wiki/Q95, variable3 - Google .Inc,varialbe4 - 美国跨国互联网和技术公司,varial5 - Google/ 请参见下面的代码:
<HTML>
<body>
<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'];
$errors = libxml_use_internal_errors(true);
$doc = new DOMDocument();
$doc->loadHTMLFile("https://www.wikidata.org/w/api.php?
action=wbsearchentities&search=$search&format=json&language=en");
libxml_clear_errors();
libxml_use_internal_errors($errors);
var_dump($doc);
echo "<p>";
$jsonArr = $doc->documentElement->nodeValue;
$jsonArr = (string)$jsonArr;
echo $jsonArr;
}
?>
</body>
</HTML>