2007年10月21日 星期日

效能問題..

目前坤璋程式進度還算OK
不過有一個地方效能不是很好
就是一開始擷取網頁的部分

雖然說在坤璋的程式裡也是要跑很久,
不過php也是一樣,目前找了一些io的方法來看
不曉得能不能找到加速io的方法.

2007年10月13日 星期六

目前進度...

星期四meeting後,我有檢討一下
基本上坤璋的論文就如同老師講的,是我自己沒看懂,所以我連抓出來show在網頁上的檔案都不清楚是什麼

再來是程式的部分
老師說的地方大概都知道怎樣去加強
不過因為程式是用BCB所寫的
很多套件的地方要重寫,改起來也會相對的麻煩很多,不會比較快
這個部分可能要和老師溝通了
因為我也很苦惱,要改的話,時間上會不夠,用PHP改的話,因為有些地方可以直接改用套件部分
相對會比較快讓系統run起來
大致上應該這上次meeting之後的想法

2007年10月7日 星期日

Tags消除

因為所有的檔案都是從網頁上分析之後取出
現在因為要將資料output在browser中
透過php函式strip_tags可以將取出的段落中包含html以及php標籤都移除
且標籤若是非法,會在browser顯示.

另外,剛剛發現在三維陣列表示中
我把維度搞錯了 ...
結果印出的資料回圈跑太多次,速度也很慢
剛剛改好之後速度就快多了.

Regular expression(2)

這篇是對regular expression的解釋

$patterns = array("/((1920)\d{2})-(\d{1,2})-(\d{1,2})/", "/^\s*{(\w+)}\s*=/");

$replace = array("\\3/\\4/\\1", "$\\1=");print preg_replace($patterns, $replace, "{startDate} = 1969-6-19");

1./ 和 / 所夾的部分代表要比對的 pattern
2.^ 代表從字串開頭\s 代表 [\r\n\t\f\v] 換行、跳行、空白字串..

3.代表 0 or 1 or any\w 代表 [a-zA-Z0-9_]+ 代表 1 or any\d 代表 0-9 的數字
所以 " {startDate} =" 亦符合 /^\s*{(\w+)}\s*=/
4.((1920)\d{2}) 代表會搜尋 19 或 20 開頭、並且其後接有兩位數字的 pattern
像是: 1983、2006。

5.\d{2}代表數字需重複兩次,換個角度來說,可看成要尋找兩位數。

\d{1,2}則是至少出現一次、至多出現兩次,如:1、31、99..

6.\\3/\\4/\\1則表示將符合的模式的結果,取代為第三個set/第四個set/第一個set

\\1 表示符合 ((1920)\d{2}) \\2 表示符合 (1920) \\3 表示符合 (\d{1,2}) \\4 表示符合 (\d{1,2})
就本例而言: 1969-6-19 變成 6/19/1969

這篇範例可以讓我門了解到如何在php上表達以及使用regular expression和preg_replace

Regular exepression

對於分析文字檔中含有網頁tag,現在想到的是利用preg_replace()將所有的html標籤刪除

下面兩個網頁是針對這個function所有功能的表示
http://tw.php.net/manual/en/ref.pcre.php
http://tw.php.net/manual/en/ref.regex.php

這個function蠻好用的
希望今天能把這部分弄完.
接下來就可以改快來弄美工的部分...