ID, URL, 별칭, 설명 및 레이블과 같은 Wikidata API에서 다음 속성에 액세스하려고하지만 지금까지 성공하지 못했습니다. 나는 기본적인 실수를하고 있으며 지금까지는 다음 코드 만 가지고 있다고 확신한다. 이 데이터에 액세스하는 가장 좋은 방법에 대한 제안은 매우 감사하겠습니다.Wikidata JSON 파일의 데이터 액세스
<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, alias, description 및 label과 같은 문자열에서 특정 요소의 첫 번째 인스턴스를 가져오고 싶습니다. variable1 - Q95, variable2 - //www.wikidata.org/wiki/Q95, variable3 - Google 당신은 구문 분석 할 JSON을 보여줄 필요가
<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>
감사하지만
은 당신이 원하는 코드를 따라 ... 당신이 원하는 것을 얻을 ... 나는 분명 var에 이름을했다, 그래서 그들은 이해하기 쉽게 조금 이상하지만, $ doc가 json_decode 함수로 에러를 얻는 것은 문자열이 아니라 객체입니다. 계속하는 방법을 모르겠다. – Oroku잘 $ doc라는 개체를 제공 할 수 있습니까? 어쩌면 이미 PHP 배열이기 때문에 json_decode 할 필요가 없습니다 ... 귀하의 사이트에 그것을 반향하여 여기에 게시 할 수 있습니까? –
안녕하세요 @ 네오 개체로 드릴 다운하고 문자열 ($ jsonArr)을 얻는 방법으로 몇 가지 진전을 보았습니다. 그리고 제가 언급 한 것처럼 실제로 관심있는 것은 ID, URL, 별칭, 설명 및 레이블 값을 얻는 것입니다. 그러나 특별히 여러 인스턴스가 있으므로 각 인스턴스의 첫 번째 인스턴스를 가져오고 싶습니다. 내 코드를 수정하여 현재 내가 무엇을 얻을 수 있는지 확인할 수 있습니다. 어떤 도움을 크게 인정합니다 – Oroku