image by techjoomla |
Dalam Cara export file csv menggunakan PHP ini saya akan menggunakan fungsi dari php yaitu fputcsv[]. Cara ini gak ribet-ribet amat sebenernya, namun dalam pengembangan web application kita biasanya sering butuh fungsi ini untuk rekap laporan dan data lainnya yang butuh di unduh dari web application yang kita buat.
Kenapa saya buat tutorial ini, karena terinspirasi dari pengalaman ketika mengerjakan projek sistem perpajakan suatu
Institut terkenal di Bandung. Data-data yang diolah di aplikasi harus di ekspor dan diimpor ke aplikasi E-SPT dari Direktorat Jendral Pajak. Banyak sebenernya tutorial seperti ini di google, tapi akan lebih mantap bukan kalo saya tulis sendiri tutorialnya versi saya? hehe
Definisi Fungsi fputcsv[]
The fputcsv[] function formats a line as CSV and writes it to an open file. This function returns the length of the written string, or FALSE on failure
Kalimat di atas saya kutip dari webnya w3schools, jadi kurang lebih fungsi ini dapat memformat baris menjadi CSV dan menulisnya kedalam file yang telah kita tentukan. Fungsi ini akan memiliki nilai balik [return] berupa panjang string yang ditulis kedalam CSV atau FALSE ketika terjadi kesalahan.
Cara Pakai fputcsv[]
int fputcsv [ resource $handle , array $fields [, string $delimiter = "," [, string $enclosure = '"' [, string $escape_char = "\\" ]]] ]
Ketika kita memanggil fungsi fputcsv maka kita harus memasukan beberapa parameter yang dibutuhkan, yaitu handle atau file yang akan kita gunakan untuk menulis CSV, kedua field atau teks yang akan kita tulis kedalam CSV. ketiga delimiter yaitu pemisah setiap kolomnya. keempat enclosure yaitu karakter yang akan digunakan untuk mengapit setiap kolom, ini opsional, secara default digunakan ["].
Contoh 1 : Menulis CSV ke media penyimpanan server
$list = array [
array['Nama Depan', 'Nama Belakang', 'Jenis Kelamin', 'Status'],
array['Ahmad', 'Zainal', 'Laki-laki', 'Single'],
array['Bambang', 'Setiawan', 'Laki-laki', 'Jomblo']
];
$fp = fopen['file.csv', 'w'];
foreach [$list as $fields] {
fputcsv[$fp, $fields];
}
fclose[$fp];
Kode diatas akan menghasilkan file.csv yang berisi data-data yang ada di variable $list kemudian menyimpan file.csv di direktori aktif server.
Contoh 2 : Menulis CSV ke media penyimpanan client
$filename = 'FILE.csv';
header[ 'Content-Type: text/csv' ];
header[ 'Content-Disposition: attachment;filename='.$filename];
$list = array [
array['Nama Depan', 'Nama Belakang', 'Jenis Kelamin', 'Status'],
array['Ahmad', 'Zainal', 'Laki-laki', 'Single'],
array['Bambang', 'Setiawan', 'Laki-laki', 'Jomblo']
];
$fp = fopen['php://output', 'w'];
foreach [$list as $fields] {
fputcsv[$fp, $fields];
}
fclose[$fp];
Kode diatas akan menulis file CSV dan kemudian menjadikannya downloadable file, jadi nanti si browser clientnya langsung download file yang ditulis. Karenanya kita kita pake hanlde nya php output kemudian menuliskan header kepada client bahwa ini adalah file bukan dokumen html untuk ditampilkan.
Mudah bukan? mudah dong.
Kode diatas hanya kode dasar saja, kalian bisa kembangkan lagi. happy kodingsanasini~
[PHP 5 >= 5.1.0, PHP 7, PHP 8]
fputcsv — Format line as CSV and write to file pointer
Description
fputcsv[
resource $stream
,
array $fields
,
string
$separator
= ",",
string $enclosure
= "\"",
string $escape
= "\\",
string $eol
= "\n"
]: int|false
Parameters
stream
The file pointer must be valid, and must point to a file successfully opened by fopen[] or fsockopen[] [and not yet closed by fclose[]].
fields
An array of strings.
separator
The optional separator
parameter sets the field delimiter [one single-byte character only].
enclosure
The optional enclosure
parameter sets the field enclosure [one single-byte character only].
escape
The optional escape
parameter sets the escape character [at most one single-byte character]. An empty string [""
] disables the proprietary escape mechanism.
eol
The optional eol
parameter
sets a custom End of Line sequence.
Note:
If an
enclosure
character is contained in a field, it will be escaped by doubling it, unless it is immediately preceded by anescape
.
Return Values
Returns the length of the written string or false
on failure.
Changelog
8.1.0 | The optional eol parameter has been added.
|
7.4.0 | The escape parameter now also accepts an empty string to disable the proprietary escape mechanism.
|
Examples
Example #1 fputcsv[] example