Bagaimana Cara Mengedit File CSV dengan PHP ?

Cara termudah adalah dengan meload file CSV ke database, mengupdate data yang ingin diubah pada database, kemudian menyimpannya kembali ke file dengan format CSV.

Contoh sederhananya adalah sebagai berikut [4] : 

//update record di database 
ProgramStudiTable::doSaveOrUpdate($id, $kode="", $program_studi="", $pt_code="", $kategori="", $kuota, $skor_min="");

Kemudian, tulis ulang hasil perubahan ke file csv [4]: 

alokasi::rewriteProgramsCsv($db_name);

Berikut adalah potongan kode fungsi rewriteProgramsCsv() [5]

public static function rewriteProgramsCsv($db_name="") {
$program_studis = ProgramStudiTable::getAll();
$datas = array(); 
foreach($program_studis as $program_studi) {
 $datas[] = $program_studi->id.",".
            $program_studi->kode.",".
            $program_studi->program_studi.",". 
            $program_studi->pt_code.",".
            $program_studi->kategori.",". 
            $program_studi->kuota.",".
            $program_studi->skor_min ;
}
$data_dir  = sfConfig::get("sf_root_dir").DIRECTORY_SEPARATOR."data".DIRECTORY_SEPARATOR."alokasi".DIRECTORY_SEPARATOR.$db_name.DIRECTORY_SEPARATOR  ;
$programs  = $data_dir.DIRECTORY_SEPARATOR."programs.csv" ;

$fp = fopen($programs, 'w');
$teks = "" ;
foreach ($datas as $data) {
$teks .= $data."\n" ;
}
fputs($fp, $teks);
fclose($fp);
}

Pada contoh diatas, kita menggunakan fputs() [2] karena kita ingin menyimpan data dalam format csv tanpa enclosure. Jika kita menggunakan fungsi fputscsv() [3], kemudian kita menentukan enclosure-nya sama dengan "", maka tidak ada sebarispun data yang akan ditulis kedalam file. 

Referensi

  1. Update the record in all csv file by php, http://stackoverflow.com/questions/10478972/update-the-record-in-all-csv-file-by-php
  2. fputs(), http://php.net/manual/en/function.fputs.php
  3. fputscsv() , http://php.net/manual/en/function.fputcsv.php
  4. kuotaActions.class.php di AlisJK
  5. alokasi.class.php di AlisJK

Comments