Tidak semua data harus disimpan di database. Untuk kebutuhan seperti mencatat log aktivitas, menyimpan pengaturan sederhana, atau mengekspor data, menyimpan ke file sudah cukup. PHP menyediakan PHP File System — kumpulan fungsi untuk membuat, membaca, menulis, dan menghapus file di server.
Menulis ke File
Cara termudah menulis file adalah file_put_contents(). Fungsi ini membuat file (jika belum ada) lalu menuliskan isinya:
<?php
file_put_contents("catatan.txt", "Halo dunia");
?>
Untuk menambahkan tanpa menimpa isi lama, gunakan flag FILE_APPEND:
<?php
file_put_contents("log.txt", "Baris baru\n", FILE_APPEND);
?>
Membaca Isi File
Sebaliknya, file_get_contents() membaca seluruh isi file sebagai satu string:
<?php
$isi = file_get_contents("catatan.txt");
echo $isi; // Halo dunia
?>
Cara Klasik: fopen, fwrite, fread
Untuk kontrol lebih detail, gunakan pendekatan bertahap. Anda membuka file, memprosesnya, lalu menutupnya:
<?php
$f = fopen("data.txt", "w"); // buka mode tulis
fwrite($f, "Baris pertama\n");
fwrite($f, "Baris kedua\n");
fclose($f); // selalu tutup file
?>
Membaca baris per baris berguna untuk file besar agar hemat memori:
<?php
$f = fopen("data.txt", "r");
while (!feof($f)) {
echo fgets($f); // baca satu baris
}
fclose($f);
?>
Memahami Mode Pembukaan File
| Mode | Arti |
|---|---|
r | Baca saja |
w | Tulis (menimpa isi lama) |
a | Tambah di akhir file |
x | Buat file baru (gagal jika sudah ada) |
Memeriksa dan Menghapus File
<?php
if (file_exists("data.txt")) {
echo "Ukuran: " . filesize("data.txt") . " byte";
unlink("data.txt"); // menghapus file
}
?>
Contoh Praktik: Mencatat Log Kunjungan
<?php
$waktu = date("Y-m-d H:i:s");
$ip = $_SERVER["REMOTE_ADDR"];
file_put_contents("kunjungan.log", "$waktu - $ip\n", FILE_APPEND);
?>
Kesalahan Umum
- Folder tidak memiliki izin tulis. Pastikan permission folder benar agar operasi berhasil.
- Lupa fclose(). File yang tidak ditutup bisa menyebabkan data tidak tersimpan sempurna.
Kesimpulan
Dengan PHP File System, Anda dapat menyimpan data ke file tanpa database. Untuk operasi sederhana, file_put_contents() dan file_get_contents() sudah cukup; untuk file besar, gunakan pendekatan fopen agar hemat memori.
Referensi: untuk penjelasan lebih mendalam, kunjungi dokumentasi resmi PHP (php.net).

