2021年4月15日 星期四

PHP 處理 CSV 檔案內容

設定目標:
  • 了解 PHP 處理 CSV 檔案的方法

PHP 處理CSV檔案
  1. 範例用的檔案內容:email.csv
    "hello@test.com",5,10,2010,100
    "test@hello.com",6,20,2021,200
    
  2. 讀取資料:readcsv.php
    <?php
    //開啟 CSV 檔案
    $csv = fopen('email.csv','rb');

    //列出檔案內容
    while ((! feof($csv)) && ($line = fgetcsv($csv))){
    printf("信箱名稱:%s ",$line[0]);
    printf("建立時間:%d/%d/%d ",$line[3],$line[1],$line[2]);
    printf("年費: %d ",$line[4]);
    printf("\n");
    }

    //關閉檔案
    fclose($csv);
    ?>
  3. 寫入資料: write.php
    <?php
    //開啟檔案,設定成寫入權限
    $csv = fopen("email2.csv",'wb');

    //設定寫入的資料
    $line = array("testhello@example.com",7,21,2021,300);

    //寫入檔案中
    fputcsv($csv,$line);
    print("寫入完成!");
    ?>
  4. 輸出至瀏覽器:tobrowser.php
    <?php
    //通知瀏覽器準備讀取 CSV 檔案
    header('Content-Type: text/csv');
    header('Content-Disposition: attachment; filename="email.csv"');

    //開啟 CSV 檔案
    $lines = fopen('email.csv','rb');

    //開啟檔案,做為輸出串流
    $csv = fopen('php://output','wb');

    //輸出內容
    while ((! feof($lines)) && ($line = fgetcsv($lines))){
    fputcsv($csv,$line);
    }
    ?>
  5. 有關 CSV 檔案,可參考更進階的套件:PHPOffice PHPExcel 套件!