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 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.
1
2
3
4
5
6
7
8
9
10
11
| 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.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
| <!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.
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.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
| <!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.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| <?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.
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)
Tidak ada komentar:
Posting Komentar