PHP – Mengisi Pilihan Dropdown Dari File Teks

Hari ini saya dapat request dari client untuk dibuatkan dropdown (combobox) yang isinya diambil dari file teks (.txt) di aplikasi web miliknya yang menggunakan PHP.

Sebetulnya bisa saja menggunakan array, tapi datanya ada sekitar 100-an dan sepertinya bakal kepanjangan.

Bisa juga menggunakan database, tapi saya gak mau nambah tabel baru di database nya.

Akhirnya saya menemukan solusi untuk menyimpan datanya di file teks dengan ekstensi txt dan nanti di-load di PHP nya. Berikut ini cara yang saya lakukan untuk menyelesaikan masalah tersebut.

Format file teks nya seperti dibawah ini, isinya hanya data yang akan menjadi option di dropdown nya, dipisahkan per baris.

Contoh Data 1
Contoh Data 2
Contoh Data 3
Contoh Data 4

Saya simpan file teks nya di root aplikasi web, jadi gak disimpan didalam folder.

Dan berikut ini script yang saya gunakan di PHP nya:

$filetext = 'data.txt';
$lines = file($filetext, FILE_IGNORE_NEW_LINES);

$combo_option = '';
foreach ($lines as $line) {
    $combo_option .= '<option value="' . $line . '">' . $line . '</option>';
}

Lalu di HTML nya tinggal saya panggil variabel $combo_option.

<select name="option_data">
    <?php echo $combo_option; ?>
</select>

Sedikit penjelasan, disini saya menggunakan perintah file dari PHP. Perintah ini berfungsi untuk membaca sebuah file baris per baris dan menyimpannya kedalam array.

Terdapat 3 pilihan untuk isian dari parameter kedua, yaitu:

  1. FILE_USE_INCLUDE_PATH : jika menggunakan perintah include_path, saya sendiri kurang memahami opsi yang ini, tapi karena saya tidak menggunakan perintah include_path jadi opsi ini tidak saya gunakan.
  2. FILE_IGNORE_NEW_LINES : karena setiap baris yang dihasilkan (yang akan dimasukkan kedalam array) dibagian akhirnya terdapat perintah baris baru \n, maka jika opsi ini digunakan baris baru tersebut akan diabaikan. Saya pernah pusing berjam-jam karena ini, jadi sepertinya opsi ini gak boleh ketinggalan.
  3. FILE_SKIP_EMPTY_LINES : opsi ini digunakan untuk melewati baris kosong jadi gak dimasukkan kedalam array.

Untuk penggunaan opsi lebih dari satu bisa menggunakan tanda |, contohnya seperti ini:

$lines = file($filetext, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

Oke, semoga tutorial singkat ini bermanfaat.

Komentar