Skip to content

Instantly share code, notes, and snippets.

@Aramics
Created July 21, 2019 06:25
Show Gist options
  • Save Aramics/7c7dc629c1dfa180ff0e963b77e33230 to your computer and use it in GitHub Desktop.
Save Aramics/7c7dc629c1dfa180ff0e963b77e33230 to your computer and use it in GitHub Desktop.
Check the Network Provider (MTN, GLO, 9Mobile/Etisalat, Airtel) of Any Mobile number or Phone number
/**
* Author: Aramics
* Function: Check the Network Provider (MTN, GLO, 9Mobile/Etisalat, Airtel) of Any Mobile number or Phone number
* Return: $return; empty when length is not valid.
* Network code e.g 01 when @param $returnTitle is false else
* return Network title by default e.g "MTN"
*
* Function is used in validating a number to ensure user have choosen right network
*
* @param $gsmNumber any: phone number to validate
* @param $gsmLength int: length of number to validate
*
*usage: $userNetwork = networkProvider("08159397703");
* if(empty($userNetwork)) { echo "Invalid Network supplied"; }
*/
function networkProvider($gsmNumber,$returnTitle=true,$gsmLength =11){
//gms prefixes
$return = "";
$mtn = ["0803", "0703", "0903", "0806", "0706", "0813", "0810", "0814", "0816"]; //01;
$glo = ["0805", "0705", "0905", "0807", "0815", "0811", "0905"]; //02;
$etisalat = ["0809", "0909", "0817", "0818"];//03;
$airtel = ["0802", "0902", "0701", "0808", "0708", "0812"]; //04;
$prefixes = ["01"=>$mtn,"02"=>$glo,"03"=>$etisalat,"04"=>$airtel];
$prefixes_title = ["01"=>"MTN","02"=>"GLO","03"=>"9MOBILE","04"=>"AIRTEL"];
$number = str_ireplace("+", "", $gsmNumber);
if(substr($number, 0,3) == "234")
$number = substr($number, 3);
if(strlen($number) != $gsmLength){
return "";
}
$signature = substr($number, 0,4);
foreach ($prefixes as $gsm_code => $prefix) {
if(in_array($signature, $prefix)){
//found a match
if($returnTitle){ //check if to return network name e.g MTN
$return = $prefixes_title[$gsm_code];
}else { //return code e.g 01 for MTN
$return = $gsm_code;
}
break;
}
}
return $return;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment