Minggu, 10 Oktober 2021

Memanipulasi File Dengan PHP

Pendahuluan

PHP menyuguhkan kita untuk membuat, membaca, mengupload dan  mengedit file. File ini bisa digunakan untuk penyimpanan data dan juga informasi dalam suatu applikasi.



Membuka File

Cukup menggunakan fopen() akan membuka atau menciptakan file bila file yang ingin dibuka tidak ada. Pada fungsi fopen,fwrite memiliki beberapa pilihan mode,mode fungsi fopen bisa dilihat pada tabel dibawah ini:

ModeKegunaan
rHanya membaca file
wMembuka dan menuliskan file. Ini akan mebghapus semua isi file atau membuat file baru bila file tidak ada
aMembuka file untuk menulis saja
xMembuat file untuk menulis saja
r+membuka file untuk membaca dan menulis
w+Membuka file untuk membaca dan menulis. Menghapus semua isi file bila ada, bila tidak maka akan membuat file
a+Membuka file untuk menulis atau membaca. Membuat file baru jika tidak ada
x+Membuat file baru untuk membaca dan menulis

Membaca File

Untuk membaca suatu file kita hanya perlu menggunakan fungsi file. Fungsi ini akan membaca file dalam bentuk array. Untuk itu bila iingin membaca file dengan baik gunakanlah fungsi foreach.

Kita hanya perlu menggunakan fungsi fwrite. funhsi ini digunakan setelah kita menggunakan fungsi fopen.

Bila ingin menutup file yang sedang dibuka gunakanlah fungsi fclose. Fungsi ini akan mengembalikan TRUE jika berhasil dan FAILURE jika gagal.

Contoh Penggunaan Pada Applikasi

Dalam contoh-contoh dibawah ini saya akan memberikan penggunaan dalam bentuk applikasi yang bisa digunakan.

Buku Tamu

manipulasi file php

Ini merupakan contoh penggunaan dari fungsi-fungsi PHP untuk memanipulasi file.

<?php

$namafile = "undangan.txt";

if(isset($_POST['text'])&&isset($_POST['alamat'])) {

  $name = $_POST['text'];

  $alamat = $_POST['alamat'];

  $handle = fopen($namafile, 'a');

  fwrite($handle, $name." beralamat ".$alamat."\n");

  fclose($handle);

}

?>

<h1>Daftar Tamu Undangan</h1>

<form method="post">

  Name: <input type="text" name="text" required/><br />

  Alamat: <input type="text" name="alamat" required/><br />

  <input type="submit" name="submit" />

</form>

<h4>Nama Para Tamu Undangan</h4>

<?php if(file_exists($namafile)): ?>

<div>

<?php 

  $baca = file($namafile);

  foreach ($baca as $baca2):

?> 

<p><?php echo $baca2; ?></p>

<?php endforeach;?>

</div>

<?php else: ?>

<div>Belum ada data tamu</div>

<?php endif ?>

Toko Buku

manipulasi file pada php

Membuat applikasi pembelian buku pada toko buku. Penggunaan dalam pembacaan file yang berbentuk json. Mari kita buat file buku2.json dengan isi data

[{"title":"Laskar Pelangi",

"author":"Habiburrahman",

"available":false,

"pages":336,

"isbn":9780061120084

},

{"title":"Choirul Tanjung",

"author":"Choirul Tanjung",

"available":true,

"pages":267,

"isbn":9780547249643

},

{"title":"Politic Has No Moral",

"author":"Marquez",

"available":true,

"pages":457,

"isbn":9785267006323

}]

Buat file index.php dengan isi:

<?php require_once 'function.php

<?php require_once 'function.php' ?>

<!DOCTYPE html>

<html>

<head>

 <meta charset="UTF-8">

 <title>Toko Buku</title>

</head>

<body>

 <p><?php echo loginMessage(); ?></p>

<?php

$booksJson = file_get_contents('buku2.json');

$books = json_decode($booksJson, true);

if (isset($_GET['title'])) {

 echo '<p>Buku yang dicari  <b>' . $_GET['title'] . '</b></p>';

 if (bookingBook($books, $_GET['title'])) {

 echo 'Booked!';

 updateBooks($books);

 } else {

 echo 'Bukunya sudah ada yang pinjam atau beli..';

 }

} else {

 echo 'Kamu bukanya sedang mencari?';

}

?>

 <ul>

 <?php foreach ($books as $book): ?>

 <li>

 <a href="?title=<?php echo $book['title']; ?>">

 <?php echo printableTitle($book); ?>

 </a>

 </li>

<?php endforeach; ?>

 </ul>

</body>

</html>

Buat file login.php dengan isi:

<!DOCTYPE html>

<html lang="en">

<head>

 <meta charset="UTF-8">

 <title>Bookstore - Login</title>

</head>

<body>

 <p>Masukan data kamu:</p>

 <form action="otoritas.php" method="post">

 <label>Nama</label>

 <input type="text" name="username" />

 <label>Password</label>

 <input type="password" name="password" />

 <input type="submit" value="Login"/>

 </form>

</body>

</html>

Untuk file otoritas.php isinya:

<?php

setcookie('username', $_POST['username']);

$submitted = !empty($_POST);

?>

<!DOCTYPE html>

<html lang="en">

<head>

 <meta charset="UTF-8">

 <title>Bookstore</title>

</head>

<body>

 <p>Form submitted? <?php echo (int) $submitted; ?></p>

 <p>Your login info is</p>

 <ul>

 <li><b>Nama</b>: <?php echo $_POST['username']; ?></li>

 <li><b>Password</b>: <?php echo $_POST['password']; ?></li>

 </ul>

 <p><a href="/">Ke Tokobuku</a></p>

</body>

</html>

Buat fungsi-fungsi pada file function.php

<?php

function loginMessage() {

 if (isset($_COOKIE['username'])) {

 return "You are " . $_COOKIE['username'];

 } else {

 return "Kamu belum masuk \n<a href=\"\login.php\"\>Masuk dulu</a>";

 }

}

function printableTitle(array $book): string {

 $result = '<i>' . $book['title'] . '</i> - ' . $book['author'];

 if (!$book['available']) {

 $result .= ' <b>Tidak tersedia</b>';

 }

 return $result;

}

function bookingBook(array &$books, string $title): bool {

 foreach ($books as $key => $book) {

 if ($book['title'] == $title) {

 if ($book['available']) {

 $books[$key]['available'] = false;

 return true;

 } else {

 return false;

 }

 }

 }

 return false;

}

function updateBooks(array $books) {

 $booksJson = json_encode($books);

 file_put_contents(__DIR__ . '/buku2.json', $booksJson);

}

?>

Jalankanlah pada browser kamu lalu masuk ke halaman login dan kembali ke halaman tokobuku dan kamu akan bisa melihat data buku-buku yang ada pada file buku2.json.

Applikasi ini mudah dan gampang dilihat datanya pada file yang kita inginkan tetapi disisi lain dalam ini tidak bagus jika digunakan untuk applikasi yang besar. Untuk applikasi yang besar saya sangat menyarankan agar menyimpan data-data pada database.

Tidak ada komentar:

Posting Komentar