最近小陽做了一個PHP同學錄,同學們自己在那裡添加或修改姓名、郵箱、OICQ等信息,並保存在mySQL資料庫裡。某日小陽突然想到,如果能用PHP產生一個文件,供同學們下載並把這些資料導入他們的Foxmail地址簿中,那該多好啊!
說乾就乾,很快小陽便將這功能推出來了。那是如何實現的呢?這裡僅以導出姓名、信箱和OICQ三項來說明。
要資料可以匯入Foxmail地址簿,當然要先了解匯入Foxmail地址簿的檔案內容和格式。開啟Foxmail4.2一個帳戶的通訊錄,在其功能表列「工具」-「匯入」中可以看到,Foxmail支援兩種外部檔案的匯入:「CSV檔案」和「Wab檔案」。我們選擇生成CSV檔案。那麼可以匯入Foxmail的CSV檔案的內容和格式如何呢?讓我們先從Foxmail匯出一個CSV檔案看一下。在Foxmail地址簿中選擇一個記錄不為空的資料夾,執行“工具”-“匯出”- “文字檔案”,儲存檔案名稱為“TEMP.CSV”, 在“下一步”的“請選擇輸出字段」中選擇“姓名”、“電子郵件地址”和“OICQ”,點擊“完成”後便在指定路徑生成了“TEMP.CSV”文件了。如果你裝了微軟office系列,會發現這是一個用EXCEL預設打開的文件,實際上它是EXCEL的逗號分隔值文件,雙擊打開後,其介面如圖所示。
我們在這種情況下還是無法知道它的寫入格式的。將「TEMP.CSV」文件改為用記事本打開,便可以發現它的格式非常簡單:如圖,文件第一行是Foxmail地址簿的字段,其它行是字段對應的值,各字段和值用英文逗號分隔。所以我們在PHP中以這種格式產生CSV文件,別人就可以下載並匯入他們的Foxmail中了!
不過還有一個問題需要解決,那就是既然文件中以逗號作為分隔值,如果資料庫記錄中有英文符號逗號(註:以下有英文符號若無特別說明皆指英文符號)怎麼辦?當然你可以先將資料中的逗號替換為中文逗號,但其實還有一個方法,那就是如果CSV檔案對應的欄位兩端加上雙引號(「即" "」)作分隔值,其間的英文逗號不作為分隔值,且字段中連續兩個英文雙引號(即“"”)也只作為一個顯示,而不作為分隔值。
有了這些認識,我們就可以編寫導出CSV文件的PHP檔案了:
在伺服器上執行上述PHP文件,下載回來的「tofoxmail.csv」文件用記事本開啟如圖所示。 🎜> 在Foxmail地址簿中點選「工具」-「導入」-「CSV檔案」…,資料庫中一大堆的資料一下子就全被導入了,這個主意還不錯吧!
(以上程式在Apache PHP4 mySQL和IIS PHP4 mySQL中皆測試通過。)
www.bkjia.com