一些不錯的 php 套件

套件介紹: 名稱:magpierss 說明: 抓取外部 rss 的工具,lifetype 也內建,不用重覆維護此套件。 MagpieRSS is compatible with RSS 0.9 through RSS 1.0. Also parses RSS 1.0’s modules, RSS 2.0, and Atom. (with a few exceptions) License:GPL examples: [code lang=“php” download=“example.php”] channel[’title’], " “; foreach ($rss->items as $item ) { $title = $item[title]; $url = $item[link]; echo “$title “; } ?> [/code] 套件介紹: 名稱:RSS Genesis Project 說明:Rss Feed 產生器,此套產生器可以用很簡單的方法產生 rss 0.9 / 1.0 / 2.0 版的 rss feed 。 RSS Genesis is an open source project. [Read More]

MD4 & Lan Manager password generater

如果有人使用 samba 3.o 使用 mysql 的方法認證,你會發現 mysql 裡面有存入二種密碼格式,而這二種密碼格式預設是無法使用 crypt 或是 md5 產生。因為他的密碼格式一個為 MD4 一個為 Lan Manager 格式,都是 Microsoft 專屬格式。很高興的在 PEAR 發現有相關套件可以使用,範例如下:

[code lang=“php”] password = ‘superpassword’; $crpt->challenge = pack(‘H*’, ‘102DB5DF085D3041’); echo “LM:".bin2hex($crpt->lmPasswordHash()); echo ’
‘; echo “MD4:".bin2hex($crpt->ntPasswordHash()); ?> [/code]

Result: LM:aa1ab12d9be8c0d18f900abf62624751 MD4:c980fb36618e837f81e80a1383539784

必需下載: Crypt_CHAPPEAR套件。

PEAR 裡有非常多的套件,很多常用套件他們都已經撰寫完了,如果要作什麼新套件,可以去 PEAR 查看看。

如何使用一份程式碼,給多個站台使用

要實現這個功能要用到 apache 的 virtual host 的功能,先必需設定 apache 各個 virtual host 指到同一個目錄,然後再程式裡面判定是經由哪個 host 進來,再給不同的內容即可。 這邊主要說明 php 的部份怎麼作,在 php 裡面可以取得 $_SERVER 這個變數,其中裡面有 HTTP_HOST 這個變數,其內容就是你是經由哪個 DNS 連上該主機的。如果是像 *.example.com 這種 subdomain 的話,直接分析 * 是什麼,就代表這是不同的站台。 首先要設定 wildcard DNS 就是把 *.example.com 指到同個網站。 設定 apache 支援 wildcard DNS 和 virtual host apache 的設定方法如下: [code] NameVirtualHost * ServerAdmin master@example.com # 最重要的為以下二行 ServerName example.com ServerAlias *.example.com DocumentRoot /var/www/data/ Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all [/code] [Read More]

wordpress plugin: catmail

  這幾天幫我的 wordpress 加了一個 plugin: cat2mail

  這個 plugin 原本的功用是幫你在 post 文章時,如果是在某些文章分類底下的話,會自動的幫你把他寄到所設定的 e-mail 裡面。在設定裡面有分成二種格式,一種是純文字,一種是 html 。html 通常都是寄到一般的 mail 裡,當然沒什麼問題。不過純文字,我是把他設定寄到 BBS 裡面,這裡就會產生幾個問題了。

  • charset 的問題:我們的 blog 目前已經變成 utf-8 為主流了,不過 BBS 還是以 big-5 為主流,所以會有亂碼的情況。
  • wordwarp 的問題:原先的 wordwarp 只吃英文,不過文章大部份是中英夾雜,所以在斷行方面會有問題。

  所以我解決了這二個問題,在設定方面可以設定要輸出的 charset 。還可以自行選擇要寄出哪篇文章,並且 wordwarp 改成在中文底下能正常斷行(不過用了很爛的方法)。並且加上了不管哪個分類,都會把文章寄出去的功能。

  在輸出純文字的方面,還會把你的 html 中的圖檔連結和網址都抓出來加到後面的參考資料裡。

  下載位置:http://www.twkang.net/~whatup/php/cat2email.php.tgz

[php] php 裡 curl module 的使用

本來在 php 裡面要抓別的網頁的資料可以使用很方便的方法,直接用fopen() 就可以了,不過如果要抓的哪個網頁,要使用 cookie?使用 POST 傳值?在 google 上面找了一下,比較方便的方法也只有使用 curl module 了。

範例一:

這個方法是把原先 utf-8 的網頁格式,直接轉到 big5 ,短短的一段程式,使用上非常方便。不過如果該網頁要登入呢?除了使用 GET method 之外,好像別無方法。但是如果對方的網頁不支援 GET method 傳參數的方法,哪更是無法使用。

範例二:

上面哪段原始碼,就是把 post 資料傳給某網頁的方法。

curl_init() 初始化 curl,curl_setopt() 設定抓取時的相關參數,curl_exec() 開始執行,curl_close() 結束。

當然還有其他使用方法,你們可以參考 php 手冊裡面試試看。

php 網頁的範例只有多而已啊。不過都深藏在回應裡面。

[Java] Java、EXCEL、和 ODBC

其實使用 Java 讀出寫入 EXCEL 檔是很方便的,我們可以透過 ODBC 去作連結就好了。

不過其中的選擇資料表的部份,如果要取得第一頁的資料的話其資料表的名字為"[Sheet1$]",第二頁就是"[Sheet2$]",其餘的就依此類推就可以了。

不過在作 excel 檔時,有幾個注意事項:

  1. 該 excel 的資料表不能是空的,最後一排為你所要寫入的資料。
  2. 如果要 insert 資料進去的話,只能 insert 和 excel 資料表最後一列同樣的格數的資料。
  3. 資料表內不可有為 . 的資料。

下面就列出一個簡單的範例,它具有讀入 excel 和插入 excel 檔的方法:

DAOtest.java

當然別忘了在[控制台]->[資料來源 ODBC]->新增一個 excel 的連結,驅動程式來源請選 Microsoft Excel Driver (*.xls) 這個選項。並且別忘了把它的唯讀關掉,這樣才可以讀寫。