fileiomenengahMahir3 mnt baca

Membaca dan Menulis File

Mengolah file teks dengan PHP: baca, tulis, tambah data, dan contoh counter pengunjung.

Cara cepat: file_get_contents dan file_put_contents

Untuk file kecil, dua fungsi ini cukup:

php
<?php
// Membaca seluruh file jadi string
$isi = file_get_contents("catatan.txt");
echo nl2br(htmlspecialchars($isi)); // nl2br: newline jadi <br>

// Menulis (menimpa isi lama)
file_put_contents("catatan.txt", "Halo dunia");

// Menambah di akhir tanpa menghapus yang lama
file_put_contents("log.txt", date("Y-m-d H:i:s") . " - dikunjungi
", FILE_APPEND);

Cara manual: fopen, fread, fwrite, fclose

Untuk kontrol lebih detail (misalnya baca baris per baris file besar):

php
<?php
$handle = fopen("data.csv", "r");
if ($handle) {
    while (($baris = fgets($handle)) !== false) {
        echo htmlspecialchars(trim($baris)) . "<br>";
    }
    fclose($handle);
}

Mode umum: "r" baca, "w" tulis (menimpa), "a" tambah di akhir.

Contoh nyata: counter pengunjung

php
<?php
$file = "counter.txt";
if (!file_exists($file)) {
    file_put_contents($file, "0");
}

$jumlah = (int) file_get_contents($file);
$jumlah++;
file_put_contents($file, (string) $jumlah);

echo "Kamu pengunjung ke-$jumlah";

Mengecek file

php
<?php
var_dump(file_exists("data.txt")); // true/false
echo filesize("data.txt");         // ukuran dalam byte
unlink("sementara.txt");           // hapus file

Catatan teknis: Pastikan PHP punya izin tulis ke folder/file target (di Linux biasanya permission 664/775, bukan 777 yang terlalu longgar). Untuk file yang ditulis banyak pengunjung bersamaan seperti counter, ada risiko race condition (dua request membaca angka yang sama). Untuk kasus serius, gunakan flock() untuk mengunci file saat ditulis, atau lebih baik simpan ke database.