WIKI的API格式:http://语言缩写.wikipedia.org/w/api.php?&action=query&titles=语言对应的文字&format=返回格式&prop=revisions&rvprop=content
我现在做一个中国的历史上的今天 获取XML数据(prop表示版本 具体参数请点击中文API 以及文档 查看 )
则请求的URL为:http://zh.wikipedia.org/w/api.php?action=query&titles=12月31日&format=xml&prop=revisions&rvprop=content
$str = file_get_contents($need_url); //$content = $result->query->pages->page->revisions->rev; $obj=simplexml_load_string($str,'SimpleXMLElement',LIBXML_NOCDATA); $obj=get_object_vars($obj); $revisions = $obj['query']->pages->page->revisions->rev;
打印$revisions 发现数据是带有wiki标记的,我们须要做的是将wiki的标记去除掉,百度发现 PEAR Text_Wiki 包,它可以实现在 Wikitext 与多个其他格式之间相互转换。
那么首先要做的是安装pear
修改配置文件 php.ini:
include_path = "D:\wnmp\php5\PEAR\"
安装pear:
上面一路回车 基本都行了 如果不行,请在选择all的时候输入all 填写system或local时候填写local 基本可以一路进行下来
如果遇到
channel "pear.php.net" has updated its protocols, use "pear channel-update pear.php.net" to update这中错误 是版本问题 只需 执行下面即可:
D:\xampp\php>pear channel-update pear.php.net Updating channel "pear.php.net" Update of Channel "pear.php.net" succeeded上述是摘抄别人的 后面会给链接
pear remote-list 命令是罗列所有的pear包 由于包比较多 执行这个命令 相应事件略长
下面就是安装我们须要的两个wiki包了
安装
安装第二的时候报错 ,一开始没细读错误 以为是pear版本的问题 后来才知道是须要给定mediawiki的版本 执行:pear install Text_Wiki_Mediawiki-0.2.0 即可
好了 wiki的转换包就安装成功了!
调用WIKI转换包:
找到刚给安装好的wiki转换包 我的安装路径是:D:\wnmp\php5\PEAR\pear\Text
将text文件复制到PHP的工作目录,在php文件中包含Wiki.php
require_once './Text/Wiki.php'; // instantiate a Text_Wiki object from the given class // and set it to use the Mediawiki adapter $wiki = & Text_Wiki::factory('Mediawiki'); // set some rendering rules $wiki->setRenderConf('xhtml', 'wikilink', 'view_url','http://zh.wikipedia.org/wiki/'); $wiki->setRenderConf('xhtml', 'wikilink', 'pages', false); echo $wiki->transform($revisions, 'Xhtml');查看网页之后 有点小乱码;后面再搞吧
wikiAPI调用教程:http://www.ibm.com/developerworks/cn/xml/x-phpwikipedia/ 这个教程是用的ZF框架 须要在ZF框架基础下才能调用Zend_Rest_Client类
pear错误:http://blog.csdn.net/chensong0708/article/details/6634848
还有好多pear安装的教程 百度一大把 就不说了