File dan Direktori PHP Pemrograman Internet
Objectives Membuat, Menulis dan Membaca Isi File Membuka dan Membuat File Menulis ke File Membaca Isi File Menutup File Membuat dan Menghapus Direktori Manipulasi File Mendapatkan Informasi File Copy, Rename dan Delete File Upload File
Pola dasar bekerja dengan file Buka file Proses Tutup file
Penanganan File Dalam management file dan direktori, PHP menyediakan lebih dari 70 fungsi. Beberapa fungsi utama berhubungan dengan management file (create, write, append, dan delete).
Membuka dan membuat file & menutup file $namafile merupakan nama file yang akan dibuat, sedangkan $mode merupakan mode akses file. Mode akses file yang bisa digunakan yaitu :
Let s try... <?php $namafile = file01.txt"; // nama file file01 $handle = fopen ($namafile, "r"); // membuka file dgn nama file01 mode r if (!$handle) { // kondisi jika file tidak ada/tdk bisa dibuka echo "<b>file tidak dapat dibuka atau belum ada</b>"; else { echo "<b>file berhasil dibuka</b>"; fclose($handle); // menutup file // Use the fclose function when finished working with a file stream to save space in memory?> *coba ganti script mode dgn mode-mode yang terdapat pada tabel.
Menulis ke File $handle = fopen ($namafile, mode"); Untuk menulis ke file, dapat menggunakan fungsi fwrite() dan fputs(). Variabel $handle merupakan mode pengaksesan file, dimana mode yang digunakan harus bisa menulis ke file. Contohnya mode w dan a. Selain itu, kita juga bisa menggunakan fungsi file_puts_contents() dengan parameter berupa nama file dan isi yang akan ditambahkan.
Let s try... <?php $namafile = file02.txt"; $handle = fopen ($namafile, "w"); if (!$handle) { echo "<b>file tidak dapat dibuka atau belum ada</b>"; else { fwrite ($handle, PTIK\n"); fputs ($handle, "Universitas Negeri Manado\n"); //file_put_contents ($namafile, Tondano"); echo "<b>file berhasil ditulis</b>"; fclose($handle);?> *coba buka file file02.txt. Apakah sesuai dgn kalimat yang kalian masukkan dgn fungsi fwrite() dan fputs()?
Membaca Isi File Untuk membaca isi file, bisa menggunakan fungsi fgets() dan fread(). Fungsi fgets() akan membaca isi file tiap baris. Sedangkan fungsi fread() akan membaca isi file setiap jumlah byte tertentu.
Let s try... <?php $namafile = file02.txt"; $handle = fopen ($namafile, "r"); if (!$handle) { echo "<b>file tidak dapat dibuka atau belum ada</b>"; else { $isi = fgets ($handle, 2048); // membaca 2048 karakter // If the length argument is omitted, PHP defaults to a length of 1024. //$isi2 = fread ($handle, 20); echo "Isi 1 : $isi<br>"; //echo "Isi 2 : $isi2<br>"; fclose($handle);?>
Let s try... <?php $namafile = file02.txt"; $handle = @fopen($namafile, "r"); if ($handle) { while (!feof($handle)) { $buffer = fgets($handle, 4096); echo $buffer."<br>"; fclose($handle);?> Program di atas akan menampilkan keseluruhan isi file, dimana isi file akan dibaca tiap baris. Pembacaan dilakukan selama pointer file belum sampai di end-of-file. Fungsi feof() berfungsi untuk memeriksa pointer file sudah berada di akhir file atau belum.
Membuat dan menghapus direktori Fungsi untuk membuat direktori baru dalam PHP adalah mkdir(). Jika direktori yang akan dibuat berada di luar tempat program disimpan, maka sertakan path direktori secara lengkap. Fungsi rmdir() hanya bisa menghapus direktori kosong. Jika direktori ada isinya maka, gunakan fungsi rekursif untuk menghapus isi direktori.
Let s try... <?php //buat direktori $dir = "include"; //nama direktori $cek = mkdir ($dir); if ($cek) { echo "Direktori <b>$dir</b> berhasil dibuat"; else { echo "Direktori <b>$dir</b> gagal dibuat"; //hapus direktori $del = rmdir ($dir); if ($del) { echo "<br>direktori <b>$dir</b> berhasil dihapus"; else { echo "<br>direktori <b>$dir</b> gagal dihapus";?>
Menampilkan isi direktori Fungsi opendir() adalah untuk membuka direktori. Sedangkan fungsi readdir() akan membaca file dalam direktori satu per satu secara urut. Fungsi closedir() adalahuntuk menutup pembukaan direktori.
Let s try... 1. Buat folder/direktori dengan nama folder. 2. Masukkan beberapa file dalam folder agar bisa melihat isi folder. 3. Buatlah file php di luar direktori folder, dengan syntaks sbb : <?php $dir = folder"; // nama folder/direktori if ($handle = opendir($dir)) { while (false!== ($file = readdir($handle))) { if ($file!= "." && $file!= "..") { echo "$file<br>"; closedir($handle);?> *Program di atas akan menampilkan di layar, semua file dan direktori yang berada dalam direktori folder.
Fungsi-fungsi untuk informasi dan manipulasi file
Copy, delete dan rename file <?php $file = file1.txt"; $filebaru = file2.txt"; $filebaru2 = file3.txt"; if (copy ($file, $filebaru)) { echo "File <b>$file</b> berhasil dicopy menjadi <b>$filebaru</b>. <br>"; if (rename ($filebaru, $filebaru2)) { echo "File <b>$filebaru</b> berhasil direname menjadi <b>$filebaru2</b>. <br>"; if (unlink ($filebaru2)) { echo "File <b>$filebaru2</b> berhasil dihapus. <br>";?> Fungsi copy() akan menduplikasi file $filemenjadi file $filebaru. Selanjutnya fungsi rename() akan mengganti nama file $filebaru menjadi $filebaru2. Fungsi unlink() akan menghapus file $filebaru2.
Upload file PHP, sebagai server-side-scripting, sangat memungkinkan untuk menangani upload file ke server. Ada beberapa hal yang perlu diperhatikan dalam upload file ini, yaitu : 1. Pada Form HTML harus ditambahkan atribut : ENCTYPE="multipart/form-data 2. Form inputan upload file dapat menggunakan tag <input> dengan value atribut TYPE= FILE. 3. Untuk menangani inputan, PHP menyediakan sebuah variabel array global yaitu $_FILES. Index dari variabel ini antara lain : $_FILES* file +* name + : Nama asli dari file yang diupload $_FILES* file +* tmp_name + : Nama temporary file yang diupload $_FILES* file +* size + : Ukuran file asli (dalam byte) $_FILES* file +* type + : MIME type file yang diupload 4. Destination folder file upload harus bisa writable (bisa diakses), biasanya dengan permission 777 atau 775.
Let s try... Buat form_upload.php utk menampilkan form utk upload <html> <head><title>upload File</title></head> <body> <FORM ACTION="upload.php" METHOD="POST" ENCTYPE="multipart/form-data"> Upload File : <input type="file" name="file"><br> <input type="submit" name="upload" value="upload"> </FORM> </body> </html> Buat upload.php utk proses upload <?php if (isset($_post['upload'])) { $dir_upload = "images/"; // nama direktori tempat file upload akan ditempatkan $nama_file = $_FILES['file']['name']; if (is_uploaded_file($_files['file']['tmp_name'])) { $cek = move_uploaded_file ($_FILES['file']['tmp_name'], $dir_upload.$nama_file); if ($cek) { die ("File berhasil diupload"); else { die ("File gagal diupload");?> Fungsi is_uploaded_file() akan mengupload file yang telah dipilih melalui form pada form_upload.php ke folder temporary (sementara). Selanjutnya file yang sudah diupload ke folder temporary akan dipindahkan (move) ke direktori yang diinginkan menggunakan fungsi move_uploaded_file().