Home > World Of ICT > Parsing Text SMS for autoreply system using PHP

Parsing Text SMS for autoreply system using PHP


Saya adalah pengguna setia layanan BNI  SMS Banking,  dengan adanya SMS Banking ini aktifitas transaksi keuangan dari dan menuju rekening saya berjalan lebih mudah. tinggal mengetikkan kode kode tertentu kemudian kirim deh ke Central Number BNI. tinggal tunggu jawaban notifikasi sistem.

Terkait dengan SMS Banking ini saya terfikir bagaimanakah proses parsing text permintaan via SMS dari pengguna yang notabene tulisan sms bisa dengan karakter beragam (UPPERCASE or LowerCASE)  ternyata dalam PHP programming bisa menjadi solusi untuk mendefinisikan fungsi pengecekan ini.

Secara default Gammu akan menyimpan ISI Text SMS pada tabel inbox dan field  TextDecoded, tugas kita adalah bagaimana memparsing text ini kemudian baru menentukan perlakuan system terhadap sms yg baru masuk.

Contoh kasus sebagai berikut ;

User mengetikkan kode tertentu untuk meminta jawaban sistem, isi perintah sms dari user tentunya akan beraneka rupa ragam dan warna, bisa dengan karakater huruf kecil semua, atau kapital semua, atau gabungan dari huruf besar dan kecil.

Contoh : login proxy , Login PROXY, LogiN Proxy, LOGin prOXY, loGiN PROXy

    • Cara Pertama adalah cara biasa , kita mendefinisikan satu persatu atas kemungkinan karakter yang mungkin terbentuk.
    •  // membaca pesan SMS dari tabel TextDecoded di database gammu ,dan mengubahnya menjadi kapital
       $msg = ($data['TextDecoded']);
      
        // proses parsing
        // memecah pesan berdasarkan karakter <spasi>
        $pecah = explode(” “, $msg);
      
        // jika kata terdepan dari SMS adalah ‘login’ ‘LOGIN ‘Login , dll maka cari login  User
        if ($pecah[0] == “LOGIN” | $pecah[0] == “login” | $pecah[0] == “Login | $pecah[0] == “loGIN””)
        {
        // baca login  dari text  SMS
        $login  = $pecah[1];
        // cari login berdasarkan entri login di sms harus sesuai dengan no hp Pengirim yg teregister
        $query2 = “SELECT * FROM proxy WHERE  (login=’$login’ AND no_hp=’$noPengirim’)  “;
        $hasil2 = mysql_query($query2);
        // cek bila data Login tidak ditemukan
        if (mysql_num_rows($hasil2) == 0) $reply = “No HP Atau Login anda Tidak Dikenali”;
        else
        {

      
      

Perhatikan perintah dicetak tebal , bahwa kita akan membuat IF case dengan match case multiple variable; ini pun juga bisa menjadi solusi. meskipun merepotkan harus entri satu satu.

    •  Solusi terbaik dan tercepat untuk hal ini adalah convert semua karakter dalam format UPPERCASE .  dengan cara berikut;
 // membaca pesan SMS dari tabel TextDecoded di database gammu ,dan mengubahnya menjadi kapital
 $msg = strtoupper($data['TextDecoded']);

  // proses parsing
  // memecah pesan berdasarkan karakter <spasi>
  $pecah = explode(” “, $msg);

  // jika kata terdepan dari SMS adalah ‘LOGIN’ maka cari login  User
  if ($pecah[0] == “LOGIN”)
  {
     // baca login  dari text  SMS
     $login  = $pecah[1];

     // cari login berdasarkan entri login di sms harus sesuai dengan no hp Pengirim yg teregister
     $query2 = “SELECT * FROM proxy WHERE  (login=’$login’ AND no_hp=’$noPengirim’)  “;
     $hasil2 = mysql_query($query2);

     // cek bila data Login tidak ditemukan
     if (mysql_num_rows($hasil2) == 0) $reply = “No HP Atau Login anda Tidak Dikenali”;
     else
     {
        // bila nilai ditemukan maka
        $data2 = mysql_fetch_array($hasil2);
        $nilai = $data2['login'];
        $nilai4 = $data2['password'];
        $nilai5 = $data2['expired_date'];
        $note    = ‘Reminder Untuk User Anda:’;
        $note2    = ‘ Password:’;
        $note3    = ‘ Masa Aktif:’;
     }
  }
  // Buat SMS balasan ke pengirim Pesan
  $query3 = “INSERT INTO outbox(DestinationNumber, TextDecoded) VALUES (‘$noPengirim’,  ‘$note$nilai$note2$nilai4$note3$nilai5′)”;
  $hasil3 = mysql_query($query3);
}
?>

Dengan menggunakan strtoupper seluruh text SMS diseragamkan dalam format UPPERCASE
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: