首页 > 代码库 > 维基百科api的简单调用以及wiki 标记的转义(pear的安装以及使用)

维基百科api的简单调用以及wiki 标记的转义(pear的安装以及使用)

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安装的教程 百度一大把 就不说了 

维基百科api的简单调用以及wiki 标记的转义(pear的安装以及使用)