mediawiki使用教程_使用PHP和MediaWiki API了解Wikipedia信息

mediawiki使用教程

大多数人都听说过Wikipedia:这是来自人群的知识的终极存储库,几乎涵盖了您可以想到的所有主题,并且可供使用Web浏览器的任何人使用。 无论您要查找什么信息,都可以在Wikipedia上找到详尽的详细信息。 并且由于它是可公开编辑的,因此它始终包含更新的相关信息。

大多数人对维基百科一无所知。 隐藏在幕后的是强大的Web服务API,它使开发人员可以访问,搜索Wikipedia内容并将其集成到自定义Web应用程序中。 该API可通过HTTP工作,并以多种不同格式(包括XML)返回数据,可供编程人员免费使用,并可以创建由Wikipedia庞大的内容数据库提供支持的各种自定义Web应用程序。

在本文中,我向您简要介绍了此API,向您展示了如何将其与我最喜欢的编程语言PHP集成和使用。 本文介绍了API如何工作的基础知识,然后为您提供了列出目录类别,按类别或关键字搜索条目,检索和显示条目以及远程添加和编辑内容的实用演练。

了解API

在深入研究PHP代码之前,需要对Wikipedia API进行一些说明。 首先,尽管我在本文中将其称为“ Wikipedia API”,但需要注意的是,该API并不是仅Wikipedia独有的。 它实际上是运行Wikipedia的MediaWiki基础应用程序的一部分,因此本文概述的技术和API方法也可以在任何其他基于MediaWiki的Wiki上使用。 您可以在参考资料中找到指向MediaWiki和完整的MediaWiki API参考手册的链接

与所有基于HTTP的服务一样,API的工作方式是接受包含一个或多个输入参数的HTTP请求,并返回可以由请求客户端解析和使用的响应。 响应通常采用XML格式,因为当今几乎每种编程语言都可以解析XML。 但是,也可以请求其他格式的响应,例如JSON,WDDX,YAML或序列化PHP。

API的每个HTTP请求都必须包含一个强制性的“ action”参数,该参数指定了所需的操作。 此参数可以是查询,编辑或删除操作,身份验证请求或其他任何受支持的操作。 除了此必需的参数之外,还必须根据选择的操作传递其他参数,例如,用于查询的搜索关键字,用于编辑或删除操作的页面标题,或用于认证的用户名和密码。

要查看运行中的API,请尝试在您喜欢的Web浏览器中访问以下URL。 ( 注意:此URL实际上是单个字符串。仅出于格式化目的,该URL显示为两行。)

http://en.wikipedia.org/w/api.php?action=query&list=allcategories&acprop=size
          &acprefix=hollywood&format=xml

此方法返回以前缀“好莱坞”开头的前10个Wikipedia类别的列表。 清单1展示了对此请求的原始XML响应。

清单1.一个示例API feed
<?xml version="1.0"?>
<api>
  <query>
    <allcategories>
      <c size="31" pages="28" files="0" subcats="3" 
        xml:space="preserve">Hollywood</c>
      <c size="0" pages="0" files="0" subcats="0" 
        xml:space="preserve">Hollywood's Rock Walk inductees</c>
      <c size="0" pages="0" files="0" subcats="0" 
        xml:space="preserve">Hollywood, California</c>
      <c size="1" pages="1" files="0" subcats="0" 
        xml:space="preserve">Hollywood, Florida</c>
      <c size="0" pages="0" files="0" subcats="0" 
        xml:space="preserve">Hollywood, Los Angeles, California</c>
      <c size="0" pages="0" files="0" subcats="0" 
        xml:space="preserve">Hollywood.com/celebrity/Wanda Shelley</c>
      <c size="0" pages="0" files="0" subcats="0" 
        xml:space="preserve">Hollywood Actors</c>
      <c size="0" pages="0" files="0" subcats="0" 
        xml:space="preserve">Hollywood Actress</c>
      <c size="0" pages="0" files="0" subcats="0" 
        xml:space="preserve">Hollywood Blacklist</c>
      <c size="2" pages="2" files="0" subcats="0" 
        xml:space="preserve">Hollywood Boulevard</c>
    </allcategories>
  </query>
  <query-continue>
    <allcategories acfrom="Hollywood Cemetery (Richmond)" />
  </query-continue>
</api>

列出类别和页面

现在您已经了解了API的工作原理,下面让我们看一些代码。 在本文全文中,我假定您熟悉HTML和XML,并且您具有一个工作正常的Apache / PHP开发环境,并且安装了最新版本的Zend Framework。 我还假定您了解使用PHP中的类和对象的基础知识,因为本文中使用PHP组件是按照OOP原则编写的。

要与API交互,您需要一个HTTP客户端,该客户端能够传输GET和POST请求并处理响应。 Zend Framework的Zend_Rest_Client组件是一个很好的工具,该组件专门为试图将PHP应用程序与Web服务集成的开发人员设计。 该客户端可用于对服务端点执行GET,POST,PUT和DELETE响应。 XML响应作为Zend_Rest_Client_Response对象的实例返回,从而可以轻松访问各个响应属性。

清单2说明了在PHP脚本的上下文中使用Zend_Rest_Client检索和显示清单1中的类别的过程。

清单2.列出维基百科类别
<?php
// load Zend classes
require_once 'Zend/Loader.php';
Zend_Loader::loadClass('Zend_Rest_Client');

// define category prefix
$prefix = 'hollywood';

try {
  // initialize REST client
  $wikipedia = new Zend_Rest_Client('http://en.wikipedia.org/w/api.php');

  // set query parameters
  $wikipedia->action('query');
  $wikipedia->list('allcategories');
  $wikipedia->acprefix($prefix);
  $wikipedia->
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值