維基百科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');
檢視網頁之後 有點小亂碼;後面再搞吧
pear錯誤:http://blog.csdn.net/chensong0708/article/details/6634848
還有好多pear安裝的教程 百度一大把 就不說了