blog.Ring.idv.tw

MediaWiki

取得MediaWiki Editable Text - MediaWiki API

取得MediaWiki Editable Text.這是先前利用Web Scraping的方式取得MediaWiki Editable Text的作法,然而現在有更好的方式來完成這樣的工作~

我們目前可以透過「MediaWiki API」來協助我們做這樣的事項~

<?php
require_once "HttpClient.php";
if($_GET)
{
	$sentence = $_GET['input'];
	$uri = "http://en.wikipedia.org/w/api.php?action=query&prop=revisions&titles=$sentence&rvprop=content&format=php";
	$body = HttpClient::quickGet($uri);

	$body = unserialize($body);
	$body = array_pop($k["query"]["pages"]);
	echo $body["revisions"][0]["*"];
}

API的時代果然來臨了...

2008-05-12 15:05:12 | Add Comment

取得MediaWiki Editable Text

這個小範例主要是用來取得目前最多人用的Wiki架站軟體「MediaWiki」的編輯文字~

筆者使用「HttpClient - a PHP Web Client Class」來當作我的HttpRequest Library,內部程式是直接開啟Socket去連線的~ 且這樣就毋須裝上「cURL」or「Zend Framework」等套件了~ 小巧又好用~ ^^

這裡就拿「Wikipedia - Hadoop」的資料來測試~ 其實程式碼相當精簡~

<?
require_once "HttpClient.php";

$body = HttpClient::quickGet('http://en.wikipedia.org/w/index.php?title=Hadoop&action=edit');
$regex = '/cols=\'80\' >(.*)<\/textarea>/Us';
preg_match($regex,$body,$match);
echo $match[1];
?>

2008-04-24 00:43:49 | Add Comment

安裝MediaWiki-1.12.0

由於未來的工作之一就是要「Trace MediaWiki」整個原始碼及架構,所以在這之前當然要先架個Wiki來測試~

整個安裝過程其實相當容易~ 只要你的LAMP環境設置正確~ 我想幾乎都能無痛上手~ 安裝步驟可參考「mawa/kaurjmeb/KJ'sWikiLife/wiki/安裝MediaWiki」,而環境設置可參考筆者的另一篇文章「Installing MySQL & Apache2 & PHP & PDO on Debian 4.0」,不過請切記「不要安裝PDO」~ 而請改安裝「php5-mysql」,如下述指令:

apt-get install php5-mysql

如果你已經安裝了「PDO」的話~ 那請修改一下「/ect/php5/apache2/conf.d」底下的兩個檔案,它們分別為「pdo.ini」和「pdo_mysql.ini」,將裡面的內容加上「#」先註解起來~ 否則你的Apache在啟動時會出現PDO的錯誤訊息~

其實這應該算是MediaWiki採用以往舊式的資料庫函式寫法的關係~ 如果要驗證的話~ 可以看「mediawiki-1.12.0\includes\Database.php」這個原始檔內部的程式~ 你將會看到「mysql_connect」、「mysql_select_db」等函式的出現,所以筆者強烈建議大家如果要開發PHP、Database相關的應用程式,請務必採用「PDO」來實作~ 如果你了解OOP Polymorphism 概念的話~ 或是寫過Java JDBC的話~ 就會了解為何我如此強烈建議~ 所以我現在不得已必須走回頭路... 還好值得安慰的是~ MediaWiki的開發人員當然也有考量到這一點~ 並自行發展出一套介面~ 只是我必須去熟悉它們所開發的這套介面~ 所以這時候就又顯示出PDO的重要了~ 總之~ 有的瞧了~

相關文章

PHP Data Objects (PDO) 介紹

2008-04-22 00:43:37 | Add Comment

Copyright (C) Ching-Shen Chen. All rights reserved.

::: 搜尋 :::

::: 分類 :::

::: 最新文章 :::

::: 最新回應 :::

::: 訂閱 :::

Atom feed
Atom Comment