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
Update the record in all csv file by php, http://stackoverflow.com/questions/10478972/update-the-record-in-all-csv-file-by-php
fputscsv() , http://php.net/manual/en/function.fputcsv.php