:::

6. 各種文字檔的匯出匯入

一、 HTML匯出(下載)

  1. 匯出功能主要是靠header來定義文件的檔頭,進而生出檔案(匯出記得關除錯)。
    header("Content-type: text/html");
    header("Content-Disposition: attachment; filename=檔名");
    echo 主要內容;
    exit;

     

  2. 利用mime-type即可將文件偽裝成各種檔案(特別是文字檔): http://www.freeformatter.com/mime-types-list.html
  3. 下載時,IE可能會變成亂碼檔名,可用iconv("UTF-8","Big5",$檔名),將檔名轉成Big5編碼即可。(但若遇到檔名有特殊字的,就會變成缺字了)
  4. 若是要把檔案存在主機上,請改用file_put_contents ( $檔名 , $檔案內容 );
    if (file_put_contents(XOOPS_ROOT_PATH . '/uploads/contact.html', $html)) {
        redirect_header('index.php', 3, '已完成!');
    }

     

二、 CSV匯出(下載)

  1. 同HTML,將mime-type改為text/csv即可。
  2. Excel的CSV格式僅支援Big5編碼,故內容需用iconv轉為Big5。UTF-8編碼的CSV檔Openoffice的Calc可以讀取。
  3. Excel的CSV格式通常用小寫「,」隔開;而Calc預設用「;」隔開,且遇到文字需用雙引號"包起來。

三、 CSV匯入

  1. 匯入文字檔上傳介面:
    <form action="main.php" method="post" enctype="multipart/form-data">
      <input type="file" name="userfile">
      <input type="hidden" name="op" value="import_csv">
      <input type="submit" value="匯入">
    </form>

     

  2. 匯入CSV檔:
    $handle = fopen($_FILES['userfile']['tmp_name'], "r") or die("無法開啟");
    while (($data = fgetcsv($handle, 1000)) !== false) {
        $sql = "insert into `" . $xoopsDB->prefix("phone_book") . "` (`sn`, `cate_sn`, `name`, `birthday`, `phone`, `email`, `zip`, `county`, `city`, `addr`, `note` ) values('{$data[0]}', '{$data[1]}', '{$data[2]}', '{$data[3]}', '{$data[4]}', '{$data[5]}', '{$data[6]}', '{$data[7]}', '{$data[8]}', '{$data[9]}', '{$data[10]}' )";
        $xoopsDB->queryF($sql) or web_error($sql);
    }
    fclose($handle);

     

  3. 控制符=fopen(檔名,模式):打開檔案,布林值=fclose(檔案控制符):關閉檔案
  4. 陣列=fgetcsv(檔案控制符,[最長讀取長度],[分格符號],[文字引號]):讀取CSV檔

四、 JSON匯出(下載)

  1. 同HTML,將mime-type改為application/json 即可
  2. 如果是要給其他程式線上介接,一般不需要用header()來指定格式,直接echo即可。
  3. 以PHP而言,利用json_encode("中文", JSON_UNESCAPED_UNICODE); 就可把陣列轉換為json格式

五、 JSON匯入

  1. 利用json_decode($json)就可以把json轉換為PHP陣列。
  2. 擷取遠端的json檔案可以利用file_get_contents ($檔名) 來抓取!
  3. http://data.gov.tw/data_list
  4. http://data.tainan.gov.tw/dataset

:::

搜尋

QR Code 區塊

https%3A%2F%2Fmail.tad0616.cp27.secserverpros.com%2Fmodules%2Ftad_book3%2Fpage.php%3Ftbdsn%3D1208%26tbsn%3D39

書籍目錄

展開 | 闔起

線上使用者

355人線上 (77人在瀏覽線上書籍)

會員: 0

訪客: 355

更多…