source: pro-violet-viettel/www/deploy/20150304/service.php

Last change on this file was 780, checked in by dungnv, 10 years ago
File size: 2.7 KB
Line 
1<?php
2if ( ! defined('_SBG_MO_REGISTER'))                     define('_SBG_MO_REGISTER',                              'SUBSCR');
3if ( ! defined('_SBG_MO_REGISTER_FOR'))                 define('_SBG_MO_REGISTER_FOR',                  'SUBSCR_FOR');
4if ( ! defined('_SBG_MO_PHONENUM_CHANGE'))              define('_SBG_MO_PHONENUM_CHANGE',               'PHONE_CHANGE');
5if ( ! defined('_SBG_MO_PASSWORD_RECOVERY'))    define('_SBG_MO_PASSWORD_RECOVERY',     'PWD_RECOVER');
6if ( ! defined('_SBG_MO_PASSWORD_CHANGE'))              define('_SBG_MO_PASSWORD_CHANGE',               'PWD_CHANGE');
7if ( ! defined('_SBG_MO_VIP_REGISTER'))                 define('_SBG_MO_VIP_REGISTER',                  'REG_VIP');
8if ( ! defined('_SBG_MO_PAY_TO_ACCOUNT'))               define('_SBG_MO_PAY_TO_ACCOUNT',                'PAY');
9if ( ! defined('_SBG_MO_PAY_TO_ACCOUNT_FOR'))   define('_SBG_MO_PAY_TO_ACCOUNT_FOR',    'PAY_FOR');
10if ( ! defined('_SBG_MO_UNSUBSCRIBE_SERVICE'))  define('_SBG_MO_UNSUBSCRIBE_SERVICE',   'UNSUBSCR');
11if ( ! defined('_SBG_MO_SUPPOR_SERVICE'))               define('_SBG_MO_SUPPOR_SERVICE',                'SUPPORT');
12if ( ! defined('_SBG_MO_SYNTAX_ERR'))                   define('_SBG_MO_SYNTAX_ERR',                    'SYNTAX_ERR');
13
14Class Services_model
15{
16        private $_arySmsMO = array(
17                _SBG_MO_REGISTER                        => array('pattern' => '/^(DK)([[:blank:]])(SBG)$/'),
18                _SBG_MO_REGISTER_FOR            => array('pattern' => '/^(DK)([[:blank:]])(SBG)([[:blank:]])([0-9]{10,11})$/'),
19                _SBG_MO_PHONENUM_CHANGE         => array('pattern' => '/^(DDT)([[:blank:]])(SBG)([[:blank:]])([0-9]{10,11})([[:blank:]])([a-zA-Z0-9]{1,})$/'),
20                _SBG_MO_PASSWORD_RECOVERY       => array('pattern' => '/^(MK)([[:blank:]])(SBG)$/'),
21                _SBG_MO_VIP_REGISTER            => array('pattern' => '/^(VIP)([[:blank:]])(SBG)([[:blank:]])([a-zA-Z0-9]{1,})$/'),
22                _SBG_MO_PAY_TO_ACCOUNT          => array('pattern' => '/^(NAP)([[:blank:]])(SBG)([[:blank:]])([0-9]{3,})$/'),
23                _SBG_MO_PAY_TO_ACCOUNT_FOR      => array('pattern' => '/^(NAP)([[:blank:]])(SBG)([[:blank:]])([0-9]{3,})([[:blank:]])([0-9]{10,11})$/'),
24                _SBG_MO_SUPPOR_SERVICE          => array('pattern' => '/^(HD)([[:blank:]])(SBG)$/'),
25                _SBG_MO_UNSUBSCRIBE_SERVICE => array('pattern' => '/^(HUY)([[:blank:]])(SBG)$/')
26        );
27       
28        public function __construct(){
29                //parent::__construct();
30        }
31       
32        public function messageAnalys ($message)
33        {
34                $aryMatched = array(); 
35                $aryContent = array();
36                $result = FALSE;
37               
38                foreach ($this->_arySmsMO as $case => $pattern)
39                {
40                        $result = preg_match($pattern['pattern'], strtoupper(trim($message)));
41                        if ((bool)$result) {
42                                $aryMatched = explode(' ', trim($message));
43                                break;
44                        }
45                }
46               
47                $case = (bool)$result ? $case:_SBG_MO_SYNTAX_ERR;
48               
49                foreach($aryMatched as $k => $val) {
50                        if ($k > 1) $aryContent[] = $val;                       
51                }
52               
53                $aryResult = array('case' => $case, 'content' => $aryContent);
54                return $aryResult;
55        }
56}
57
58$mo = new Services_model();
59
60var_dump($mo->messageAnalys('NAP SBG 15000 0988568786'));
61
Note: See TracBrowser for help on using the repository browser.