Membuat Random Words dengan Codeigniter

Sejak helper random_element() hadir, semua custom function mulai di-migrasi. Semua koding tidak memerlukan keahlian khusus, hanya perlu logika. Termasuk dengan generator random words yang sangat dibantu oleh kehadiran fungsi ini.

Intro

Generator Random Words adalah satu yang ingin saya bagikan. Di-Codeigniter sendiri sudah hadir yang namanya random_string() yang menghasilkan string acak. Sedangkan kali ini ingin berbagi dengan kata acak yang dapat diaplikasikan untuk helper seperti captcha. Cara ini sudah saya terapkan pula untuk captcha bawaan dari CI untuk beberapa proyek web.

The Steps

Langkah untuk membuat random word ini cukup mudah, hanya persiapkan database yang ada, tentu yang sudah ada artikelnya agar kata acaknya keluar sesuai konten yang ada. Daripada mencari api yang menyediakan kata acak dan tentu berbayar.
Untuk kasus ini, anggap saja kita memiliki DB dengan table bernama 'news' dengan kolom 'articles'. Dengan bantuan random_element() akan memuluskan fungsi generator random word yang kita buat sendiri.


function random_word() {
    $q = $this->db->select('id, articles')
                  ->limit(1)
                  ->order_by('articles', 'RANDOM')
                  ->get('news');
    $r = $q->row();
    $new_array = explode(" ", $r->articles);

    return random_element($new_array);
} 

Cara tersebut sebenarnya sudah berhasil untuk menampilkan kata acak dalam database yang ada, tapi untuk tanda baca dan lain-lain juga akan tampil karena memang tidak dilakukan filter. Kita bisa mengatasinya dengan fungsi str_replace atau preg_replace, berikut adalah contoh fungsi tambahan untuk membersihkan simbol / special chars.


function clean($string) {
    return preg_replace('/[^A-Za-z0-9]/', '', $string);
}

Jika tidak mau pusing dengan hal tersebut diatas, kita juga dapat menggunakan url_title untuk membantu menghilangkan karakter spesial. Jika dilengkapi maka fungsi random word nya dapat menjadi seperi berikut.


function random_word() {
    $q = $this->db->select('id, articles')
                  ->limit(1)
                  ->order_by('articles', 'RANDOM')
                  ->get('news');
    $r = $q->row();
    $new_array = explode(" ", $r->articles);

    return url_title(random_element($new_array), '');
    // return clean(random_element($new_array));
} 

Mungkin seperti itu, fungsi sederhana membuat random word tanpa kode panjang dengan menggunakan Codeigniter. Semoga dapat membantu project anda, jika ada kesalahan mohon koreksinya, jika ingin menambahkan silakan kirim komentar. Dan akan diupdate jika ada penemuan sederhana yang lain.

TErimakasih

Toto Prayogo

Disqus Comments