array('pattern' => '/^(DK)([[:blank:]])(SBG)$/'), _SBG_MO_REGISTER_FOR => array('pattern' => '/^(DK)([[:blank:]])(SBG)([[:blank:]])([0-9]{10,11})$/'), _SBG_MO_PHONENUM_CHANGE => array('pattern' => '/^(DDT)([[:blank:]])(SBG)([[:blank:]])([0-9]{10,11})([[:blank:]])([a-zA-Z0-9]{1,})$/'), _SBG_MO_PASSWORD_RECOVERY => array('pattern' => '/^(MK)([[:blank:]])(SBG)$/'), _SBG_MO_VIP_REGISTER => array('pattern' => '/^(VIP)([[:blank:]])(SBG)([[:blank:]])([a-zA-Z0-9]{1,})$/'), _SBG_MO_PAY_TO_ACCOUNT => array('pattern' => '/^(NAP)([[:blank:]])(SBG)([[:blank:]])([0-9]{3,})$/'), _SBG_MO_PAY_TO_ACCOUNT_FOR => array('pattern' => '/^(NAP)([[:blank:]])(SBG)([[:blank:]])([0-9]{3,})([[:blank:]])([0-9]{10,11})$/'), _SBG_MO_SUPPOR_SERVICE => array('pattern' => '/^(HD)([[:blank:]])(SBG)$/'), _SBG_MO_UNSUBSCRIBE_SERVICE => array('pattern' => '/^(HUY)([[:blank:]])(SBG)$/') ); public function __construct(){ //parent::__construct(); } public function messageAnalys ($message) { $aryMatched = array(); $aryContent = array(); $result = FALSE; foreach ($this->_arySmsMO as $case => $pattern) { $result = preg_match($pattern['pattern'], strtoupper(trim($message))); if ((bool)$result) { $aryMatched = explode(' ', trim($message)); break; } } $case = (bool)$result ? $case:_SBG_MO_SYNTAX_ERR; foreach($aryMatched as $k => $val) { if ($k > 1) $aryContent[] = $val; } $aryResult = array('case' => $case, 'content' => $aryContent); return $aryResult; } } $mo = new Services_model(); var_dump($mo->messageAnalys('NAP SBG 15000 0988568786'));