Memparsing File Data TXT dengan PHP

Memparsing File Data TXT dengan PHP

Dalam beberapa kasus, seorang developer web seringkali diminta klien untuk menyimpan data transaksi ke dalam bentuk yang portabel dan mudah dibaca oleh komputer, tanpa…

Dalam beberapa kasus, seorang developer web seringkali diminta klien untuk menyimpan data transaksi ke dalam bentuk yang portabel dan mudah dibaca oleh komputer, tanpa harus memasang (install) database terlebih dahulu. Sebagai contoh, untuk membuat log file penjualan barang berdasar waktu tertentu, seorang manajer minimarket menyimpan data penjualan tersebut ke dalam sebuah file .txt berdasar tanggal/hari.

Sekumpulan data tidak harus disimpan ke dalam sebuah database yang besar. Kita bisa memanfaatkan file .txt tersebut untuk menyimpan data-data yang sederhana. File .txt lebih portabel dalam menyimpan data, meskipun tidak “ramah pandangan” apabila isinya terlalu banyak. Selain itu, file .txt juga mudah dikenali oleh banyak bahasa pemrograman, salah satunya yaitu PHP.

Untuk memisahkan item data dalam sebuah file .txt, maka file tersebut harus berisi data dengan pola tertentu. Misalnya item data satu dengan yang lainnya dipisahkan dengan simbol/karakter tertentu. Pada tutorial ini, penulis akan menjelaskan bagaimana cara membaca (parsing) dan menulis (input) data file .txt menggunakan PHP.

1. Menentukan file .txt yang akan diparsing. Dalam kasus ini, penulis akan menggunakan contoh data pemain sepakbola. Simpan data berikut ke dalam data.txt.

ID|NAMA|TIM|UMUR|ALAMAT
001|Lampard|Chelsea|36|Manchester, Inggris
002|Gerrard|Liverpool|38|Liverpool, Inggris
003|Demba Ba|Chelsea|29|Dakar, Senegal
004|Podolski|Arsenal|28|Hamburg, Jerman
005|Rooney|Manchester United|30|London, Inggris
006|Sterling|Liverpool|23|Kingston, Jamaica
007|Messi|Barcelona|27|Buenos Aires, Argentina
008|Ronaldo|Real Madrid|28|Lisbon, Portugal
009|Robben|Bayern Muenchen|30|Gottingen, Belanda
010|Lewandowski|Dortmund|29|Stuttgart, Jerman

2. Membuat file index.php yang berisi kode-kode sebagai berikut. Kode berikut berfungsi untuk memecah sekaligus menampilkan data.txt ke halaman web.

<!DOCTYPE HTML>
<html>
	<head>
		<title>Baca (Parsing) File .txt dengan PHP</title>
	</head>
	<body>

	<?php
	$txt_file    = file_get_contents('data.txt');
	$rows        = explode("\n", $txt_file);
	array_shift($rows);

	echo '<h3>Data PemainSepakbola</h3>';
	echo '<a href="form.php">Tambah Data</a></br></br>';
	$i=1;

	foreach($rows as $row => $data)
	{

		// Memisahkan Item Data dariPemisah |, array pada PHP dimulaipada index ke-0
		$row_data = explode('|', $data);

		$info[$row]['id']           = $row_data[0];
		$info[$row]['nama']         = $row_data[1];
		$info[$row]['tim']  		= $row_data[2];
		$info[$row]['umur']       	= $row_data[3];
		$info[$row]['alamat']       = $row_data[4];

		// Menampilkan Data

		echo 'Bariske- ' . $i++ . '<br />';
		echo ' ID: <b>' . $info[$row]['id'] . '</b><br />';
		echo ' NAMA: <b>' . $info[$row]['nama'] . '</b><br />';
		echo ' TIM: <b>' . $info[$row]['tim'] . '</b><br />';
		echo ' UMUR: <b>' . $info[$row]['umur'] . ' tahun</b><br />';
		echo ' ALAMAT: <b>' . $info[$row]['alamat'] . '</b><br />';
		echo "<hr>";
	}
	?>

</body>
</html>

3. Jika file index.php tersebut dipanggil melalui browser, maka tampilannya seperti ditunjukkan seperti gambar di bawah ini. Tampak bahwa isi data.txt sudah dapat ditampilkan dengan baik.

Hasil

Isi Data

4. Membuat file form.php yang berisi kode-kode sebagai berikut. Kode berikut adalah kode form HTML untuk melakukan input data. Hasil pengisian data tersebut selanjutnya akan dimasukkan ke dalam data.txt melalui script proses.php.

<!DOCTYPE HTML>
<html>
	<head>
		<title>Membaca (Parsing) File .txt dengan PHP</title>
	</head>
	<body>

		<form name="form1" method="post" action="proses.php">
		<table width="780" border="0" align="center">
			<tr>
				<td colspan="2"><h3>Form Isian Data PemainSepakbola</h3></td>
			</tr>
			<tr>
				<td width="250">ID</td>
				<td width="530"><input size="40" name="id" type="text" id="id"></td>
			</tr>
			<tr>
				<td>NAMA</td>
				<td><input size="40" name="nama" type="text" id="nama" value=""></td>
			</tr>
			<tr>
				<td>TIM</td>
				<td><input size="40" name="tim" type="text" id="tim"></td>
			</tr>
			<tr>
				<td>UMUR</td>
				<td><input size="40" name="umur" type="text" id="umur"></td>
			</tr>

			<tr>
				<td>ALAMAT (Kota, Negara)</td>
				<td><input size="40" name="alamat" type="text" id="alamat"></td>
			</tr>
			<tr>
				<td></td>
				<td><input name="Submit" type="submit" value="Simpan"></td>
			</tr>
			<tr>
				<td></td>
				<td><a href="index.php">Lihat Data >></a></br></td>
			</tr>
		</table>
		</form>

	</body>
</html>

5. Nilai variabel yang dimasukkan melalui form.php, selanjutnya masuk ke dalam script proses.php berikut. Script ini berisi perintah untuk menuliskan input form sebelumnya ke file data.txt sesuai formatnya.

<?php

	// Menangkapisivariabeldariform.php
	$id = $_POST['id'];
	$nama = $_POST['nama'];
	$tim = $_POST['tim'];
	$umur = $_POST['umur'];
	$alamat = $_POST['alamat'];

	// Format data yang akandiparsing
	$data = "\n $id|$nama|$tim|$umur|$alamat";

	// Buka file data.txt, kemudiantuliskanisivariabel di ataskedalam data.txt
	$fh = fopen("data.txt", "a");
	fwrite($fh, $data);

	// Tutup file data.txt
	fclose($fh);

	// Keteranganbila data berhasildiinput
	print "Data TelahTersimpan.</br><a href='index.php'>Kembalike Index >></a>";

?>

6. Gambar berikut adalah tampilan form.php pada browser. Cobalah untuk melakukan input data, kemudian cek apakah data yang Anda inputkan sudah masuk ke data.txt.

Input Data

Input Data

ParsingDaftar Parsing

Penutup

Dalam prakteknya, parsing file .txt dengan PHP ini seringkali tidak berdiri sendiri dan cenderung kurang aman. Tidak ada mekanisme otentikasi username dan password seperti layaknya menggunakan database, sehingga rawan diretas. Jika kebutuhannya kompleks, maka harus tetap didukung oleh database, terutama untuk data/informasi yang sifatnya penting dan rahasia. Penggunaan file .txt biasanya hanya digunakan untuk sebatas pelaporan (log/report) atas sebuah aktivitas, juga bermanfaat untuk melakukan penggalian atau analisis data (data mining).

Tag: , , , ,

10 Comments

Leave Comment
  1. SENDYYeah says:

    CMS dengan Flat-file database… *ngikik*

  2. yan says:

    data.txt file nya taruh dimana ya mas?

  3. Rick says:

    kalo edit data yg ada bisa gak?
    misal Umur Lampard yg semula 36 tahun diubah menjadi 40 th..

    gmn scriptnya?

  4. zaqsa says:

    Mas, aku nyoba contoh persis dengan yang diatas. tapi koq error ya.

    ini error nya
    Warning: array_shift() [function.array-shift]: The argument should be an array in D:\AppServ\www\a\record_txt\1\index.php on line 11
    Data PemainSepakbola
    Tambah Data
    Warning: Invalid argument supplied for foreach() in D:\AppServ\www\a\record_txt\1\index.php on line 17

    trus pada saat simpan, pada proses.php baris ke 11:
    $data = “\n\n $id|$nama|$tim|$umur|$alamat”;

    memang bisa nyimpen ke data.txt, tapi kok gak di bawah ya nulisnya malah kesamping. makasih

  5. Yessah says:

    Mantab gan ilmunya, cocok buat nubi kayak ane.. :)

  6. amoye says:

    cara masukan gambar di file txt itu gimana ya, bingung ne. trus menampilkan di browser. gbu

  7. amoye says:

    cara buat page piye gak tau ne?

  8. gara web ini saya bisa membuat web phising

  9. Arie says:

    Mas, mau nanya, kalau parsing text file dengan 1 informasi yang berada di 2 row berurutan supaya menjadi 1 baris gmn ya ?

    Misalnya :

    NO NAME HEIGHT AGE
    NAT CLUB STATUS
    1) Frank Lampard 182 37
    ENGLAND CHELSEA COACH
    2) Didier Drogba 185 37
    IVORY COAST CHELSEA STAFF

    Agar terbaca menjadi :

    1) Frank Lampard 182 37 ENGLAND CHELSEA COACH
    2) Didier Drogba 185 37 IVORY COAST CHELSEA STAFF

Write Comment

Your email will not be published. The marked label is required.