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
      {

    Continue reading “Parsing Text SMS for autoreply system using PHP”