• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    用PHP將數據導入到Foxmail

    發布: 2007-7-14 19:53 | 作者: 佚名    | 來源: 網絡轉載     | 查看: 11次 | 進入軟件測試論壇討論

    領測軟件測試網

          最近小陽做了一個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><?
    //這一行一定要放在程序的開始地方,不能有空格或換行。因為下面的header()函數不允許在使用前向用戶輸出任何東西。
    $dfname=\"tofoxmail.csv\"; //生成的文件名
    //連接mySQL數據庫:
      mysql_connect(\"localhost\",\"yourname\",\"yourpassword\") or die(\"不能連接數據庫!\");
      mysql_select_db(\"alumni\") or die(\"數據庫發生錯誤!\");
    if($action==\"downit\"){
      $getdata=mysql_query(\"SELECT name,email,oicq FROM classdata\"); //選擇數據表中指定記錄
    //如果沒有資料,則:
      if(@mysql_num_rows($getdata)==0){
      echo \"對不起,還沒有任何資料!\";
      exit;
      }
      //以下生成一個文件供下載:
      header(\"Content-disposition: filename=$dfname\");
      header(\"Content-type: unknown/unknown\");
      echo \"姓名,電子郵件地址,OICQ,foxaddrID\"; //輸出第一行,Foxmail地址簿的字段
      $i=1;
      while($row=mysql_fetch_array($getdata)){ //取得數據類型的值
      //將數據中每一個雙引號替換為兩個:
      $row[name]=str_replace(\"\\"\",\"\\"\\"\",$row[name]);
      $row[email]=str_replace(\"\\"\",\"\\"\\"\",$row[email]);
      $row[oicq]=str_replace(\"\\"\",\"\\"\\"\",$row[oicq]);
      //輸出相應字段對應的值的行,每個值用雙引號和逗號作分隔符:
      echo base64_decode(\"DQo=\").\"\\"$row[name]\\",\\"$row[email]\\",\\"$row[oicq]\\",$i\";
      /*上式中“base64_decode(\"DQo=\")”是換行符,之所以不用“\n”,是因為兩者不完全相同,
      用后者將可能導致Foxmail導入失敗。
      */
      $i++;
      }
      exit;
      }
      ? >
      < !--如果不是點擊了下載的鏈接,則顯示以下HTML內容-- >
      < html>
      < head>
      < meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\">
      < title>導出資料到Foxmail地址簿< /title>< /head>
      < body> 點擊< a href=\'javascript:this.location=this.location+\"?action=downit\"\'>這里< /a>下載文件,保存并導入到您的Foxmail地址簿中。< br>
      < B>操作方法< /B>< br>
      ……
      < /body>
      < /html>

          在服務器上運行上述PHP文件,下載回來的“tofoxmail.csv”文件用記事本打開如圖所示。

          在Foxmail地址簿中點擊“工具”-“導入”-“CSV文件”……,數據庫中一大堆的資料一下子就全被導入了,這個主意還不錯吧!

    點擊查看原圖

    (以上程序在Apache+PHP4+mySQL和IIS+PHP4+mySQL中皆測試通過。)

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>