File Handling di PHP
Pelajari cara membaca, menulis, dan mengelola file menggunakan PHP. File handling adalah kemampuan penting untuk menyimpan dan mengambil data dari file.
Pengenalan File Handling
File handling memungkinkan aplikasi PHP untuk berinteraksi dengan sistem file server, seperti membaca konfigurasi, menyimpan log, atau mengelola upload file.
Membuka dan Menutup File
<?php
// Membuka file untuk dibaca
$file = fopen("data.txt", "r");
if ($file) {
echo "File berhasil dibuka";
// Menutup file
fclose($file);
} else {
echo "Gagal membuka file";
}
?>
Mode File
Mode | Deskripsi |
---|---|
r |
Read only. File pointer dimulai dari awal file |
w |
Write only. Menghapus isi file atau membuat file baru |
a |
Write only. File pointer dimulai dari akhir file |
r+ |
Read/write. File pointer dimulai dari awal file |
w+ |
Read/write. Menghapus isi file atau membuat file baru |
a+ |
Read/write. File pointer dimulai dari akhir file |
Membaca File
Membaca Seluruh File
<?php
// Cara 1: Menggunakan file_get_contents()
$content = file_get_contents("data.txt");
echo $content;
// Cara 2: Menggunakan fread()
$file = fopen("data.txt", "r");
$size = filesize("data.txt");
$content = fread($file, $size);
fclose($file);
echo $content;
?>
Membaca File Baris per Baris
<?php
// Cara 1: Menggunakan fgets()
$file = fopen("data.txt", "r");
while (!feof($file)) {
$line = fgets($file);
echo $line . "<br>";
}
fclose($file);
// Cara 2: Menggunakan file()
$lines = file("data.txt");
foreach ($lines as $line) {
echo $line . "<br>";
}
?>
Membaca File CSV
<?php
$file = fopen("data.csv", "r");
while (($data = fgetcsv($file)) !== FALSE) {
echo "Nama: " . $data[0] . ", Email: " . $data[1] . "<br>";
}
fclose($file);
?>
Tips: Selalu periksa apakah file ada menggunakan
file_exists()
sebelum membacanya untuk menghindari error.
Menulis File
Menulis ke File
<?php
// Cara 1: Menggunakan file_put_contents()
$content = "Hello World!";
file_put_contents("output.txt", $content);
// Cara 2: Menggunakan fwrite()
$file = fopen("output.txt", "w");
fwrite($file, "Hello World!");
fclose($file);
?>
Menambah ke File (Append)
<?php
// Menggunakan file_put_contents dengan flag FILE_APPEND
$content = "Data baru\n";
file_put_contents("log.txt", $content, FILE_APPEND);
// Menggunakan fopen dengan mode 'a'
$file = fopen("log.txt", "a");
fwrite($file, "Data tambahan\n");
fclose($file);
?>
Menulis Array ke File CSV
<?php
$data = [
['John Doe', 'john@email.com', '25'],
['Jane Smith', 'jane@email.com', '30'],
['Bob Johnson', 'bob@email.com', '35']
];
$file = fopen("users.csv", "w");
foreach ($data as $row) {
fputcsv($file, $row);
}
fclose($file);
?>
Perhatian: Pastikan direktori memiliki permission yang benar untuk menulis file. Mode 'w' akan menghapus isi file yang sudah ada.
File Handling Lanjutan
Informasi File
<?php
$filename = "data.txt";
if (file_exists($filename)) {
echo "Ukuran file: " . filesize($filename) . " bytes<br>";
echo "Tipe file: " . filetype($filename) . "<br>";
echo "Waktu modifikasi: " . date("Y-m-d H:i:s", filemtime($filename)) . "<br>";
echo "Dapat dibaca: " . (is_readable($filename) ? 'Ya' : 'Tidak') . "<br>";
echo "Dapat ditulis: " . (is_writable($filename) ? 'Ya' : 'Tidak') . "<br>";
}
?>
Upload File
<?php
// Form HTML untuk upload
/*
<form method="post" enctype="multipart/form-data">
<input type="file" name="upload">
<input type="submit" value="Upload">
</form>
*/
if ($_FILES['upload']['error'] == 0) {
$uploadDir = 'uploads/';
$uploadFile = $uploadDir . basename($_FILES['upload']['name']);
// Validasi tipe file
$allowedTypes = ['jpg', 'jpeg', 'png', 'gif'];
$fileExt = strtolower(pathinfo($uploadFile, PATHINFO_EXTENSION));
if (in_array($fileExt, $allowedTypes)) {
if (move_uploaded_file($_FILES['upload']['tmp_name'], $uploadFile)) {
echo "File berhasil diupload.";
} else {
echo "Gagal mengupload file.";
}
} else {
echo "Tipe file tidak diizinkan.";
}
}
?>
Mengelola Direktori
<?php
// Membuat direktori
if (!is_dir('logs')) {
mkdir('logs', 0755, true);
}
// Membaca isi direktori
$files = scandir('.');
foreach ($files as $file) {
if ($file != '.' && $file != '..') {
echo $file . "<br>";
}
}
// Menghapus file
if (file_exists('temp.txt')) {
unlink('temp.txt');
}
// Menghapus direktori kosong
if (is_dir('temp') && count(scandir('temp')) == 2) {
rmdir('temp');
}
?>
Best Practice: Selalu validasi input, batasi ukuran file, dan gunakan path yang aman untuk menghindari security issues.
Path Belajar PHP
Step 1: Dasar-Dasar PHP
Memahami apa itu PHP dan cara instalasinya
๐ Pengenalan๐ Instalasi
Step 2: Sintaks & Variabel
Mempelajari cara menulis kode PHP yang benar
๐ Sintaks Dasar๐ Variabel๐ Operator
Step 3: Logika & Function
Memahami alur program dan pengorganisasian kode
๐ Struktur Kontrol๐ Function๐ Array
Step 4: Web Development
Membuat aplikasi web interaktif
โ
Formโ
Session๐ File
Step 5: Database & Keamanan
Mengelola data dan keamanan aplikasi
๐ Database๐ Pdo๐ Security
Step 6: Advanced Topics
Topik lanjutan untuk pengembangan professional
๐ Oop Basic๐ Email๐ Framework
Tips: Ikuti urutan step untuk hasil belajar optimal. Setiap step membangun pengetahuan dari step sebelumnya.
Tutorial Saat Ini
Level: Menengah
Memerlukan pemahaman dasar PHP