PHP连接到MediaWiki API并检索数据

Gal*_*Gal 3 php api service mediawiki mediawiki-api

我注意到有一个类似于我的问题,只有c#:link text.让我解释一下:我对整个Web服务实现都很陌生,所以我遇到了一些难以理解的问题(特别是由于模糊的MediaWiki API手册).

我希望将整个页面作为 PHP(XML文件)中的字符串检索,然后在PHP中处理它(我很确定还有其他更复杂的方法来解析XML文件,但无论如何): 主页维基百科.

我试过了$fp = fopen($url,'r');.它输出:HTTP request failed! HTTP/1.0 400 Bad Request.API不需要密钥即可连接到它.

您能详细描述如何连接到API并将页面作为字符串获取吗?

编辑: 网址是$url='http://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&format=xml&redirects&titles=Main Page';.我只想将文件的整个内容读入一个字符串中以便使用它.

Gal*_*len 8

连接到该API就像检索文件一样简单,

FOPEN

$url = 'http://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&format=xml&redirects&titles=Main%20Page';
$fp = fopen($url, 'r');
while (!feof($fp)) {
    $c .= fread($fp, 8192);
}
echo $c;
Run Code Online (Sandbox Code Playgroud)

的file_get_contents

$url = 'http://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&format=xml&redirects&titles=Main%20Page';
$c = file_get_contents($url);
echo $c;
Run Code Online (Sandbox Code Playgroud)

只有在服务器fopen启用了包装器时才能使用上述两个.

否则,如果您的服务器安装了cURL,您可以使用它,

$url = 'http://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&format=xml&redirects&titles=Main%20Page';
$ch = curl_init($url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$c = curl_exec($ch);
echo $c;
Run Code Online (Sandbox Code Playgroud)