說干就干,很快小陽便將這功能推出來了。那是如何實現(xiàn)的呢?這里僅以導(dǎo)出姓名、郵箱和OICQ三項予以說明。
要資料可以導(dǎo)入Foxmail地址簿,當(dāng)然要先了解一下導(dǎo)入Foxmail地址簿的文件內(nèi)容和格式。打開Foxmail4.2一個帳戶的地址簿,在其菜單欄“工具”-“導(dǎo)入”中可以看到,F(xiàn)oxmail支持兩種外部文件的導(dǎo)入:“CSV文件”和“Wab文件”。我們選擇生成CSV文件。那么可以導(dǎo)入Foxmail的CSV文件的內(nèi)容和格式如何呢?讓我們先從Foxmail導(dǎo)出一個CSV文件看一下。在Foxmail地址簿中選擇一個記錄不為空的文件夾,執(zhí)行“工具”-“導(dǎo)出”- “文本文件”,保存文件名為“TEMP.CSV”, 在“下一步”的“請選擇輸出字段”中選擇“姓名”、“電子郵箱地址”和“OICQ”,點擊“完成”后便在指定路徑生成了“TEMP.CSV”文件了。如果你裝了微軟office系列,會發(fā)現(xiàn)這是一個用EXCEL默認(rèn)打開的文件,實際上它是EXCEL的逗號分隔值文件,雙擊打開后,其界面如圖所示。

我們在這種情況下還是無法知道它的寫入格式的。將“TEMP.CSV”文件改為用記事本打開,便可以發(fā)現(xiàn)它的格式非常簡單:如圖,文件第一行是Foxmail地址簿的字段,其它行是字段對應(yīng)的值,各字段和值用英文逗號分隔。所以我們在php中按這種格式生成CSV文件,別人就可以下載并導(dǎo)入他們的Foxmail中了!

不過還有一個問題需要解決,那就是既然文件中以逗號作為分隔值,如果數(shù)據(jù)庫記錄中有英文逗號(注:以下符號若無特別說明皆指英文符號)怎么辦?當(dāng)然你可以先將數(shù)據(jù)中的逗號替換為中文逗號,但其實還有一個方法,那就是如果CSV文件相應(yīng)的字段兩端加上雙引號(“即" "”)作分隔值,其間的英文逗號不作為分隔值,且字段中連續(xù)兩個英文雙引號(即“""”)也只作為一個顯示,而不作為分隔值。
有了這些認(rèn)識,我們就可以編寫導(dǎo)出CSV文件的php文件了:
復(fù)制代碼 代碼如下:
<? //這一行一定要放在程序的開始地方,不能有空格或換行。因為下面的header()函數(shù)不允許在使用前向用戶輸出任何東西。
$dfname="tofoxmail.csv"; //生成的文件名
//連接mySQL數(shù)據(jù)庫:
mysql_connect("localhost","yourname","yourpassword") or die("不能連接數(shù)據(jù)庫!");
mysql_select_db("alumni") or die("數(shù)據(jù)庫發(fā)生錯誤!");
if($action=="downit"){
$getdata=mysql_query("SELECT name,email,oicq FROM classdata"); //選擇數(shù)據(jù)表中指定記錄
//如果沒有資料,則:
if(@mysql_num_rows($getdata)==0){
echo "對不起,還沒有任何資料!";
exit;
}
//以下生成一個文件供下載:
header("Content-disposition: filename=$dfname");
header("Content-type: unknown/unknown");
echo "姓名,電子郵件地址,OICQ,foxaddrID"; //輸出第一行,F(xiàn)oxmail地址簿的字段
$i=1;
while($row=mysql_fetch_array($getdata)){ //取得數(shù)據(jù)類型的值
//將數(shù)據(jù)中每一個雙引號替換為兩個:
$row[name]=str_replace("/"","/"/"",$row[name]);
$row[email]=str_replace("/"","/"/"",$row[email]);
$row[oicq]=str_replace("/"","/"/"",$row[oicq]);
//輸出相應(yīng)字段對應(yīng)的值的行,每個值用雙引號和逗號作分隔符:
echo base64_decode("DQo=")."/"$row[name]/",/"$row[email]/",/"$row[oicq]/",$i";
/*上式中“base64_decode("DQo=")”是換行符,之所以不用“/n”,是因為兩者不完全相同,
用后者將可能導(dǎo)致Foxmail導(dǎo)入失敗。
*/
$i++;
}
exit;
}
?>
<!--如果不是點擊了下載的鏈接,則顯示以下HTML內(nèi)容-->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>導(dǎo)出資料到Foxmail地址簿</title></head>
<body> 點擊<a href='Javascript:this.location=this.location+"?action=downit"'>這里</a>下載文件,保存并導(dǎo)入到您的Foxmail地址簿中。<br>
<B>操作方法</B><br>
……
</body>
</html>
在服務(wù)器上運(yùn)行上述php文件,下載回來的“tofoxmail.csv”文件用記事本打開如圖所示。
在Foxmail地址簿中點擊“工具”-“導(dǎo)入”-“CSV文件”……,數(shù)據(jù)庫中一大堆的資料一下子就全被導(dǎo)入了,這個主意還不錯吧!

(以上程序在Apache+php4+mySQL和IIS+php4+mySQL中皆測試通過。)
php技術(shù):用PHP將數(shù)據(jù)導(dǎo)入到Foxmail的實現(xiàn)代碼,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。