PHP - Menangani File CSV

Halo sana, para ahli PHP masa depan! Hari ini, kita akan memulai perjalanan yang menarik ke dunia file CSV dan bagaimana menangani mereka menggunakan PHP. Sebagai guru komputer yang ramah di lingkungan Anda, saya berjanji untuk membuat petualangan ini semudah dan menyenangkan mogelijk. Jadi, ambil keyboard Anda (tongkat sihir virtual), dan mari kita masuk ke dalam!

PHP - Handle CSV File

Apa Itu File CSV?

Sebelum kita mulai mengoding, mari kita pahami apa yang kita hadapi. CSV singkatan dari "Comma-Separated Values." Itu adalah format file sederhana yang digunakan untuk menyimpan data tabular, seperti spreadsheet atau database. Setiap baris di file mewakili baris tabel, dan nilai di setiap baris dipisahkan oleh koma.

Misalnya, file CSV mungkin terlihat seperti ini:

Name,Age,City
John Doe,30,New York
Jane Smith,25,London
Bob Johnson,40,Paris

Sekarang kita tahu apa itu file CSV, mari belajar bagaimana bekerja dengan mereka di PHP!

Fungsi fgetcsv()

Fungsi pertama kita untuk menangani file CSV adalah fgetcsv(). Fungsi ini membaca baris dari file dan menguraikannya menjadi array menggunakan delimiter yang ditentukan (biasanya koma).

Penggunaan Dasar

Berikut adalah contoh sederhana bagaimana menggunakan fgetcsv():

<?php
$file = fopen("data.csv", "r");

while (($data = fgetcsv($file)) !== FALSE) {
print_r($data);
}

fclose($file);
?>

mariuraikan ini:

  1. Kita membuka file "data.csv" dalam mode baca menggunakan fopen().
  2. Kita gunakan perulangan while untuk membaca file baris per baris.
  3. fgetcsv($file) membaca baris dan mengkonversinya menjadi array.
  4. Kita mencetak setiap array menggunakan print_r().
  5. Akhirnya, kita tutup file dengan fclose().

Penggunaan Lanjut

Ayo buat ini lebih menarik! Apa bila CSV kita menggunakan delimiter lain, misalnya titik koma? Tidak masalah! fgetcsv() menangani hal ini:

<?php
$file = fopen("data.csv", "r");

while (($data = fgetcsv($file, 1000, ";")) !== FALSE) {
echo "Name: " . $data[0] . ", Age: " . $data[1] . ", City: " . $data[2] . "<br>";
}

fclose($file);
?>

Dalam contoh ini, kita menambahkan dua parameter tambahan ke fgetcsv():

  • Parameter kedua (1000) adalah panjang baris maksimum yang akan dibaca.
  • Parameter ketiga (";") menentukan delimiter.

Kita juga memformat output kita agar lebih mudah dibaca. Isn't that neat?

Fungsi fputcsv()

Sekarang kita telah mengetahui bagaimana membaca file CSV, mari belajar bagaimana membuat mereka! Memasuki fputcsv(), tongkat sihir kita untuk menulis file CSV.

Penggunaan Dasar

Berikut adalah contoh sederhana:

<?php
$data = array(
array('Name', 'Age', 'City'),
array('John Doe', '30', 'New York'),
array('Jane Smith', '25', 'London'),
array('Bob Johnson', '40', 'Paris')
);

$file = fopen('new_data.csv', 'w');

foreach ($data as $row) {
fputcsv($file, $row);
}

fclose($file);

echo "CSV file created successfully!";
?>

mariuraikan ini:

  1. Kita membuat array dari array, dimana setiap array dalamnya mewakili baris di CSV kita.
  2. Kita membuka file baru 'new_data.csv' dalam mode tulis.
  3. Kita perulangan melalui array data kita dan menggunakan fputcsv() untuk menulis setiap baris ke file.
  4. Kita tutup file dan mencetak pesan sukses.

Penggunaan Lanjut

Ayo tambahkan beberapa opsi ke fungsi fputcsv() kita:

<?php
$data = array(
array('Name', 'Favorite Quote'),
array('Shakespeare', 'To be, or not to be'),
array('Einstein', 'Imagination is more important than knowledge')
);

$file = fopen('quotes.csv', 'w');

foreach ($data as $row) {
fputcsv($file, $row, '|', '"', '\\');
}

fclose($file);

echo "Quotes CSV file created successfully!";
?>

Dalam contoh ini, kita menggunakan parameter tambahan fputcsv():

  • Parameter ketiga ('|') menentukan delimiter.
  • Parameter keempat ('"') menentukan karakter penutup.
  • Parameter kelima ('\') menentukan karakter pelarian.

Ini berguna ketika data Anda mungkin mengandung koma atau karakter khusus.

Menggabungkan Segala Hal

Sekarang, mari gabungkan keterampilan membaca dan menulis kita untuk membuat konverter file CSV!

<?php
// Membaca dari CSV terpisah oleh titik koma
$input_file = fopen("input.csv", "r");
$output_file = fopen("output.csv", "w");

while (($data = fgetcsv($input_file, 1000, ";")) !== FALSE) {
// Menulis ke CSV terpisah oleh koma
fputcsv($output_file, $data);
}

fclose($input_file);
fclose($output_file);

echo "CSV file converted successfully!";
?>

Skrip ini membaca file CSV terpisah oleh titik koma dan menulis kontennya ke file CSV terpisah oleh koma. Magic, bukan?

Kesimpulan

Selamat, para ahli PHP muda! Anda baru saja belajar dasar menangani file CSV di PHP. Ingat, latihan membuat sempurna, jadi jangan takut untuk mencoba fungsi ini. Siapa tahu? Anda mungkin menjadi sihir CSV berikutnya!

Berikut adalah tabel rujukan cepat dari metode yang kita pelajari:

Fungsi Tujuan Sintaks Dasar
fgetcsv() Baca file CSV fgetcsv($file, $length, $delimiter, $enclosure, $escape)
fputcsv() Tulis file CSV fputcsv($file, $fields, $delimiter, $enclosure, $escape)

Selamat mengoding, dan may your CSV files always be properly formatted!

Credits: Image by storyset