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. kuotaActions.class.php di AlisJK

  2. alokasi.class.php di AlisJK