內容提供:
旗標出版公司 |
|
旗
標 電 腦 文 摘
第253期 2005.1.6 |
Windows XP 密技嗆聲報 3
書號:F522
定價:280 元
施威銘研究室 著
我要線上購買
|
|
本期文摘:用 Google 也可以搜尋硬碟內檔案的內容耶!
本文摘錄自旗標 F522「Windows XP 密技嗆聲報 3」一書
『Google Desktop Search』 是一套可在個人電腦上使用的超強搜尋程式, 其功能就像 Google 搜尋引擎, 不管您要查詢何種檔案、甚至要找尋文件檔內的文字內容, 只要輸入關鍵字後執行查詢作業, 都能馬上搜出任何相關的資料。目前可支援的檔案格式有:Outlook、Outlook Express、TXT、HTML、DOC、Excel 文件、AOL 即時通訊軟體交談內容紀錄、瀏覽器的歷史紀錄等。
Google Desktop Search 已開放下載使用, 而且完全免費喔!好, 話不多說!我們就直接下載、先來玩玩看囉!請先開啟 IE 並連線至 http://desktop.google.com/:
進入 Google desktop search download 網頁後, 按 Agree and Download 鈕即可行下載
當檔案下載完成後, 接下來便可進行軟體安裝:
執行安裝檔, 按著按下執行鈕, 將程式安裝到電腦中
安裝步驟相當簡, 皆依軟體預設值作即可, 最後進入此畫面, 按下 Start Searching 鈕即可開始使用
當您完成程式下載、安裝後, Google Desktop Search 便會在您的電腦上架設一個『http://127.0.0.1:4664』的小型伺服器, 其功能類似 Google 搜尋引擎, 讓您找尋任何檔案、文件時, 只要在瀏覽器輸入相關的關鍵字即可查詢:
- 在關鍵字欄位中, 輸入欲搜尋的關鍵字
- 接著按下 Search Desktop 鈕
- 接著就可以找出相關的檔案或各式資料啦!
或許您在安裝完 Google Desktop Search 後, 第 1次開始輸入關鍵字查詢時, 會發生找不到您想要的文件內容的情形, 這是因為 Google Desktop Search 還未建立起電腦內文件內容索引的工作, 所以當然找不到。不過 Google Desktop Search 會在電腦閒置時, 自動進行文件內容索引, 若想要讓 Google Desktop Search 完成索引工作, 筆者建議先將主機閒置一晚不關機, 應該就可以完成。
--- 本篇完
|
| |
- 這本書還有以下內容哦:
-
輕鬆面對 SP2 防火牆
-
無外掛、免模擬,直接在 XP 下執行 Linux
-
日系 P2P 軟體 ─ Share,讓您搜遍日本動漫作品
-
加裝 Gmail Drive 讓 Gmail 化身超大網路硬碟
-
偷偷監視家中電腦的 MSN 對話內容
欲知詳情請參考: F522 Windows XP 密技嗆聲報 3
我要買這本書
|
|
| |
........................................︽
........................................
|
| |
|
PHP 網頁模組隨學隨用
書號:F900
定價:480 元
施威銘研究室 著
我要線上購買
| |
本期文摘:PHP 模組開發的準備工作
本文摘錄自旗標 F900「PHP 網頁模組隨學隨用」一書
開發模組前的思考
在著手開發模組之前, 我們還必須做一些事前的規劃工作。因為一旦沒有經過規劃就開始撰寫程式, 不僅容易事倍功半, 而且可能造成日後不易維護的困擾, 甚至想要再次應用此模組都會遇到阻礙;尤其是在分工的團隊專案中, 更需要將模組設計的十分有彈性, 才不會造成其他模組的開發人員使用上的困擾, 所以開發模組前必須要有事前的準備工作, 讓開發出來的模組具有充分的再使用性 (Reusability) 及易修改性 (Easy to modify) , 以利後續開發使用。
首先, 我們來想一想一個網頁功能可能的組成份子。當然一定會有網頁部份 (包含了 HTML、Java/VB Script、Flash、Java Applet 等用戶端執行的網頁程式)、PHP 程式碼部份, 甚至可能會在網頁中呈現大量的資訊, 所以可能會需要資料庫來管理資料, 因此我們一定會用到 SQL 語法。如果模組中還有其他特定的功能需求, 我們一樣必須把這些組成份子一一列入考慮。
在考慮完模組的每個組成份子後, 就必須思考可否將其獨立出來。將功能獨立出來可能會對執行的效率有一點點影響, 不過卻可方便我們日後的修改, 甚至提供給其他模組及元件應用;況且以現今的硬體配備, 應該可以用硬體資源來補其執行效率的不足。
在之後每一章的設計思考流程圖的小節中, 筆者皆會將模組開發時所應思考的資料流程加入章節中, 便於規劃後續實際的設計開發流程。讀者也可以自訂流程圖來對應特定的需求。模組開發的思考流程圖如下:
由上圖得知, 大致上每一個功能模組的開發都可以拆成幾個特定的部份。筆者大略將其分為資料庫元件、固定網頁元件、模組功能元件。
架構如下圖所示:
由於往後幾章的模組開發都會以物件化的模組開發方式來進行, 因此筆者必須先說明一下每一個獨立元件的用途:
- 資料庫元件:將資料庫元件獨立出來的原因, 是方便日後如有轉換資料庫的需求時, 管理者/程式設計師可以不用更改模組本身的程式, 只需修改資料庫元件即可達成。而資料庫元件又可分成兩個功能:
- 連結資料庫功能:將連結資料庫的函式及帳號密碼獨立為一個功能檔案, 日後轉換資料庫時, 僅需更動此檔案內的函式及變數設定即可順利轉換資料庫。
- 自行宣告函式功能:由於 PHP 在針對不同的資料庫時, 亦使用不同的函式語法, 因此可以宣告一組自定的函式來撰寫模組, 這樣以後轉換資料庫時, 就僅需更動此一檔案, 而不必大費周章的更改所有的程式碼。
- 網頁元件:由於以前撰寫模組時通常會將 HTML 及 PHP 程式碼寫在一起, 這種情況在修改網頁時非常容易混淆, 而且通常修改網頁的所見即所得 (WSWG) 軟體是不能支援 PHP 程式碼的呈現。因此最好的方式就是盡可能的將 HTML 語法部分獨立出來, 以方便日後再次使用。
- 模組元件:此元件為程式本身, 捨棄傳統以一支程式處理全部功能的方式, 將模組的功能拆開, 各自負責相關功能, 這樣可以方便程式開發人員日後維護使用, 其他模組如需使用特定功能時, 僅須使用 include() 函式, 將所需元件部份載入即可。
日後在開發每一個模組時, 讀者可以反覆檢查模組中的所有功能是否有重複用到的程式碼, 並思考其是否能獨立出來成為一個單獨的元件來開發, 若能夠以物件的開發模式來進行每一個模組的設計, 日後在修改及維護時就不需要花費太多的時間及心力了。
模組開發小技巧
讀者可以保留每個資料表開設時的 Schema, 以利日後可能資料庫須更換時使用。
|
資料庫功用元件說明
在上一小節中, 筆者已說明模組開發的流程及本書各模組所包含的一些基本元件。我們接著就實際撰寫在之後的模組開發中, 所必備之資料庫元件的程式碼。
我們先進入 C:\Appserv\www 目錄中, 請讀者新增 db_conn.php 這個檔案, 並編輯內容如下:
01
02
03 $DB_HOST = "localhost"; // 資料庫主機位置
04 $DB_LOGIN = "root"; // 資料庫的使用帳號
05 $DB_PASSWORD = "flag!@#"; // 資料庫的使用密碼
06 $DB_NAME = "flag"; // 資料庫名稱
07
08 $conn = mysql_connect($DB_HOST, $DB_LOGIN, $DB_PASSWORD);
09 mysql_select_db($DB_NAME);
10
11 ?>
|
- 第 03-06 行分別定義了 MySQL 的主機位置、帳號、密碼及資料庫名稱。
- 第 08 行表示使用 mysql_connect() 函式來連線至 MySQL。
- 第 09 行的 mysql_select_db() 函式則是用來指定所欲使用的資料庫名稱。
上列程式第 7 行內容過長, 超出本書版面限制。故將超出部份續列至次行, 且該行不加行號, 表示這一行的內容是延續上一行, 也就是說在書附光碟上的檔案中, 這些內容都仍屬第 7 行。本書之後的程式列表都採同樣的排列方式, 所以讀者看到有未標行號的程式碼, 即表示該行的內容是延續前一行。
只要在每一個需要使用到 MySQL 資料庫的程式碼中, 皆外掛 db_conn.php 連結資料庫功能, 日後即使更換主機、帳號密碼或是資料庫, 都只要更動這個功能的設定即可, 不再需要變動每個功能模組的程式碼。
本書的模組範例皆建構於一個名為 flag 的範例資料庫中, 如果讀者要更動資料庫名稱, 請在稍後的章節自行對應修改。
要真正做到元件的獨立, 光是設定上述連結資料庫的功能還不夠, 由於 PHP 在連結每一種不同類型的資料庫時, 皆使用各自不同的函式。如 MySQL 的 SQL 語法執行的函式為 mysql_query();而 Microsoft SQL Server 則使用 mssql_query() 函式, 因此日後如果轉換資料庫時, 勢必需要全盤更動程式碼中的函式 ,所以我們就需要一個自訂的資料庫存取函式功能, 並將所有與存取資料庫相關的程式碼都集中於此, 以方便日後的修改。
請讀者新增一個 db_func.php 檔案, 並編輯如下:
01
02
03 function db_query($qry_str) {return mysql_query
($qry_str);}
04 function db_num_rows($res) {return mysql_num_rows
($res);}
05 function db_fetch_array($res) {return mysql_fetch_array
($res);}
06 function db_fetch_object($res) {return mysql_fetch_object
($res);}
07 function db_data_seek($res,$num){return mysql_data_seek
($res,$num);}
08 function db_insert_id($res) {return mysql_insert_id
($res);}
09 ?>
|
在 db_func.php 檔案中我們自行定義了資料庫函式的語法, 以第 02 行為例, db_query() 函式其實是對應到原本 PHP 內定的 mysql_query() 函式, 而第 03-08 行則分別對應了不同 MySQL 函式。這樣設計的好處正如之前所提及的, 可以方便日後資料庫變動或 PHP 函式庫變動時時修改使用。
因此我們在開發模組時, 最好先將欲使用的函式庫自行宣告, 如上述的 db_func.php 檔案中所述;簡單的說, 我們使用 db_query () 這類自行宣告的函式來撰寫模組, 日後如需更動資料庫, 則只需更改 db_func.php 這個檔案, 將對應 db_query() 的函式更改為欲更換的資料庫函式即可。
結論
- 元件化開發的好處在易於維護及修改, 且有利於團體專案的方式來開發模組, 日後專案整合時不致於發生程式碼及函式溝通不良的情況。
- 讀者可嘗試自行將所需的 MySQL 函式, 以相同的方式輸入 db_func.php 中。
- 依個人使用習慣不同, 讀者當然亦可以將此兩個檔案合併成一個大的資料庫元件使用。
--- 本篇完
| |
|
| |
........................................︽ ........................................ |
|
|
版權所有人:旗標出版股份有限公司 本電子報內容未經授權請勿轉載
|
|