baca tulis file csv dengan php
DESCRIPTION
PHP merupakan salah satu bahasa pemrograman yang mendukung penanganan file dengan cukup baik, termasuk file CSV. Bahkan mulai versi 4, PHP menambahkan fungsi khusus untuk penanganan file CSV, yaitu fgetcsv() untuk baca file CSV dan fputcsv() untuk membuat (menulis) file CSV. Dalam tutorial ini akan dibahas mengenai bagaimana baca tulis file CSV dengan menggunakan PHPTRANSCRIPT
BacTutorial CSV atadimana baris repemisahtitik‐komsoftwareCalc. Spe PHP mebaik, terfile CSV,tutorial
Bentu Sebelumumum a Bentuk
a
)
Berdasamemilikparamet Berikut i $ha
mau $len
harumensesudeng
$dediba
$encfile C
$esc
ca Tudibuat oleh
u Comma‐Sesetiap data
ecord dipisahh (delimiter) ma (;) atau kae pengolah esifikasi dan
erupakan salrmasuk file C, yaitu fgetcsini akan diba
k Umum
m disajikan catau spesifika
umum file fg
array fgetcsv resource
[, int $le[, string $[, string $[, string $
)
rkan bentuki output beter pertama
ini penjelasandle. Merup
upun fsockopngth. Merupus lebih besanentukan pauai dengan bgan asumsi jlimiter. Para
aca. Nilai defclosure. ParCSV. Defaultcape. Param
lis FiAchmad Sol
eparated Va(field) dipisahkan dengakoma terkad
arakter <tabdata (spreapenjelasan
ah satu bahCSV. Bahkansv() untuk bahas mengen
Fungsi fge
contoh progasi dari fungs
getcsv()
( $handle
ength
$delimiter$enclosure$escape = '\
k umum di aterupa array harus disert
an masing‐mpakan pointepen(). akan jumlahar dari jumlaastinya, nambaris terpanumlah karak
ameter ini mfault dari parameter ini m
t‐nya adalah eter pilihan
le CSlichin (http:/
lue merupakahkan dengan baris bardang jenis fi
b>. Jenis file Cdsheet) sepmengenai fil
asa pemrog mulai versi aca file CSV nai bagaiman
etcsv() da
ramnya, adasi fgetcsv() d
= ','
= '"'
\' ]]]]
tas, fungsi fghasil pemb
takan, namun
asing paramer pembacaa
h atau panjaah karakter b
mun kita dapjang. Umum
kter tiap barimenentukan jrameter ini amenentukantanda kutip‐ini menentu
V den//achmatim.
kan suatu foan suatu pemu (line‐breale CSV juga CSV sendiri, erti Microsoe CSV dapat
raman yang 4, PHP mendan fputcsv
na baca tulis
an fputcsv
a baiknya kitdan fputcsv()
getcsv() yangbacaan file Cn parameter
eter tersebuan file, dapa
ang karakter baris yang papat memper
mnya parameis tidak lebihjenis pemisa
adalah koma karakter pe‐dua (“). kan karakter
Achma
ngan .net) pada ta
ormat penyajmisah koma ak). Selain mdapat dipisadapat dibaca
oft Excel dan ditemukan
mendukungnambahkan fv() untuk mes file CSV den
v()
ta pahami du.
g merupakanCSV. Fungsi r yang lainny
ut: at berupa h
pembacaanaling panjanrkirakannya eter ini cuku dari 1000 at
ah (delimiter(,).
engapit (enc
r escape yan
ad Solichin |
PHP anggal 09 M
jian data tek(,) dan setia
menggunakaahkan dengaa oleh semun OpenOfficdi Wikipedia
g penanganafungsi khusu
embuat (menngan menggu
ulu mengena
n fungsi pemmemiliki 5
a bersifat op
asil dari fun
n baris di fileg di file CSVtanpa harus
up diisi dengtau 1024 terr) field dalam
losure) untu
g digunakan
http://achm
aret 2010
ks p n n a e
a.
an file dengaus untuk pennulis) file CSVunakan PHP
ai bagaimana
bacaan file C5 parameterpsional (pilih
ngsi fopen(),
e CSV. ParamV. Memang as benar‐bengan 1000 at
rsebut. m file CSV ya
uk setiap fie
dalam file C
matim.net
an cukup nanganan V. Dalam .
a bentuk
CSV yang r dimana an).
popen()
meter ini agak sulit nar tepat tau 1024
ang akan
ld dalam
CSV.
1
Achmad Solichin | http://achmatim.net
2
Bentuk umum file fputcsv()
int fputcsv ( resource $handle ,
array $fields
[, string $delimiter = ','
[, string $enclosure = '"' ]] )
Dari bentuk umum di atas, terlihat bahwa fungsi fputcsv() memiliki 4 parameter dimana dua parameter pertama bersifat wajib. Fungsi ini memiliki return‐value berupa bilangan integer yang merupakan panjang data (string) yang berhasil dituliskan ke file CSV. Fungsi akan bernilai FALSE (‐1) jika gagal melakukan penulisan file. Mengenai penjelasan parameter fungsi, untuk $handle, $delimiter dan $enclosure sama seperti parameter pada fungsi fgetcsv(). Untuk parameter $fields dapat berisi array dari nilai data untuk setiap baris (record) yang akan ditambahkan ke file CSV.
Contoh Program Menulis ke File CSV Pada contoh program ini, kita akan membuat file CSV dengan nama “mahasiswa.csv” yang akan diisi dengan data mahasiswa. Untuk menyederhanakan contoh, data mahasiswa yang akan dituliskan hanya berisi 3 (tiga) field yaitu “nim”, “nama” dan “nilai”. Masing‐masing field akan dipisahkan dengan delimiter koma (,). Pengisian data dilakukan melalui sebuah form dimana saat tombol simpan ditekan, maka program akan menambahkan datanya ke file “mahasiswa.csv”. Nama File: tulis_csv_mahasiswa.php 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
<html> <head><title>Input Nilai Mahasiswa (Demo Menulis File CSV) </title> </head> <body> <h1>Input Nilai Mahasiswa</h1> <form action="" method="post"> NIM : <input type="text" name="nim" maxlength="10"/><br/> NAMA : <input type="text" name="nama" size="30"/><br/> NILAI : <input type="text" name="nilai" size="5"/><br/> <input type="submit" name="Simpan" value="Simpan"/> <input type="reset" name="Reset" value="Reset"/> </form> <?php if (isset($_POST['Simpan'])) { //ambil data $nim = $_POST['nim']; $nama = $_POST['nama']; $nilai = $_POST['nilai']; $arrdata = array($nim, $nama, $nilai); $fp = fopen('mahasiswa.csv', 'a+'); $tulis = fputcsv($fp, $arrdata); if ($tulis) { echo "<h2>Data berhasil disimpan</h2>"; } else { echo "<h2>Data gagal disimpan</h2>";
Achmad Solichin | http://achmatim.net
3
31 32 33 34 35 36 37 38 39 40
} echo "<p><a href='baca_csv_mahasiswa.php'>Lihat isi file CSV</a> | "; echo "<a href='mahasiswa.csv'>Download file CSV</a></p>"; fclose($fp); } ?> </body> </html>
Contoh Program Membaca File CSV Contoh program ini akan mendemonstrasikan bagaimana pembacaan file CSV. Program akan membaca file “mahasiswa.csv” yang sudah diisi dengan program sebelumnya dan akan menampilkannya di sebuah tabel. Nama File: baca_csv_mahasiswa.php 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
<html> <head><title>Daftar Nilai Mahasiswa (Demo Baca File CSV)</title> </head> <body> <h1>Daftar Nilai Mahasiswa</h1> <table width="100%" border="1"> <tr> <th>NO</th> <th>NIM</th> <th>NAMA</th> <th>NILAI</th> </tr> <?php if (($handle = fopen("mahasiswa.csv", "r")) !== FALSE) { $row = 1; while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { echo "<tr>"; echo "<td>".$row++."</td>"; echo "<td>".$data[0]."</td>"; echo "<td>".$data[1]."</td>"; echo "<td>".$data[2]."</td>"; echo "</tr>"; } //end while fclose($handle); } //end if ?> </table> <p><a href="tulis_csv_mahasiswa.php">Input Nilai Mahasiswa</a></p> </body> </html>
Achmad Solichin | http://achmatim.net
4
Demo dan Download Contoh Program • Demo Program baca tulis CSV dengan PHP dapat dilihat di http://bit.ly/PHPBacaTulisCSV • Download Contoh Program di http://achmatim.net/download/22
Kesimpulan Proses baca tulis file CSV di PHP ternyata cukup mudah karena memang sudah tersedia fungsi yang diperlukan. Tutorial ini hanya menjelaskan mengenai proses baca tulis file CSV secara sederhana, namun selanjutnya dapat dikembangkan menjadi aplikasi yang lebih kompleks, misalnya membaca file dari database kemudian menuliskannya ke dalam file CSV. Selamat mencoba dan maju terus ilmu pengetahuan Indonesia!
‐oOo‐
Tentang Penulis
Achmad Solichin. Adalah Lulusan Teknik Informatika, Fakultas Teknologi Informasi, Universitas Budi Luhur, Jakarta (S1, 2005). Saat ini sedang menempuh pendidikan S2 di Magister Teknologi Informasi Universitas Indonesia (2008). Kegiatan sehari‐hari adalah sebagai Dosen di Universitas Budi Luhur (http://www.bl.ac.id). Kegiatan lain aktif sebagai programmer, web developer, system analyst dan memberikan pelatihan di berbagai bidang komputer serta membuat tutorial‐tutorial praktis di bidang komputer. Penulis memiliki situs utama di http://achmatim.net yang berisi berbagai tutorial praktis di bidang
komputer serta menyediakan buku gratis komputer. Penulis dapat dihubungi melalui email di [email protected], YM achmatim, Facebook achmatim dan Twitter achmatim.
Lisensi Dokumen Seluruh isi dalam dokumen ini dapat digunakan, dimodifikasi dan disebarluaskan secara bebas untuk tujuan pendidikan, pembelajaran dan bukan komersial (non profit), dengan syarat tidak menghilangkan, menghapus atau mengubah atribut penulis dokumen ini dan pernyataan dalam lisensi dokumen yang disertakan di setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang atau mengkomersialkan tutorial ini kecuali mendapatkan ijin terlebih dahulu dari penulis.