Skip to content

Instantly share code, notes, and snippets.

@NimzyMaina
Last active February 7, 2020 11:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save NimzyMaina/0318ff0042184d18aeeb51612682cb3e to your computer and use it in GitHub Desktop.
Save NimzyMaina/0318ff0042184d18aeeb51612682cb3e to your computer and use it in GitHub Desktop.
New and improved way to Identify Kenyan Phone Number Service provider
<?php
// Gotten from https://en.wikipedia.org/wiki/Telephone_numbers_in_Kenya#Mobile_phone_numbers
$providers = [
'100' => 'Airtel',
'101' => 'Airtel',
'102' => 'Airtel',
'110' => 'Safaricom',
'111' => 'Safaricom',
'701' => 'Safaricom',
'702' => 'Safaricom',
'703' => 'Safaricom',
'704' => 'Safaricom',
'705' => 'Safaricom',
'706' => 'Safaricom',
'707' => 'Safaricom',
'708' => 'Safaricom',
'710' => 'Safaricom',
'711' => 'Safaricom',
'712' => 'Safaricom',
'713' => 'Safaricom',
'714' => 'Safaricom',
'715' => 'Safaricom',
'716' => 'Safaricom',
'717' => 'Safaricom',
'718' => 'Safaricom',
'719' => 'Safaricom',
'720' => 'Safaricom',
'721' => 'Safaricom',
'722' => 'Safaricom',
'723' => 'Safaricom',
'724' => 'Safaricom',
'725' => 'Safaricom',
'726' => 'Safaricom',
'727' => 'Safaricom',
'728' => 'Safaricom',
'729' => 'Safaricom',
'730' => 'Airtel',
'731' => 'Airtel',
'732' => 'Airtel',
'733' => 'Airtel',
'734' => 'Airtel',
'735' => 'Airtel',
'736' => 'Airtel',
'737' => 'Airtel',
'738' => 'Airtel',
'739' => 'Airtel',
'740' => 'Safaricom',
'741' => 'Safaricom',
'742' => 'Safaricom',
'743' => 'Safaricom',
'745' => 'Safaricom',
'746' => 'Safaricom',
'747' => 'Faiba 4G',
'748' => 'Safaricom',
'750' => 'Airtel',
'751' => 'Airtel',
'752' => 'Airtel',
'753' => 'Airtel',
'754' => 'Airtel',
'755' => 'Airtel',
'756' => 'Airtel',
'757' => 'Safaricom',
'758' => 'Safaricom',
'759' => 'Safaricom',
'763' => 'Equitel',
'764' => 'Equitel',
'765' => 'Equitel',
'768' => 'Safaricom',
'770' => 'Orange',
'771' => 'Orange',
'772' => 'Orange',
'773' => 'Orange',
'774' => 'Orange',
'775' => 'Orange',
'776' => 'Orange',
'780' => 'Airtel',
'785' => 'Airtel',
'786' => 'Airtel',
'787' => 'Airtel',
'788' => 'Airtel',
'789' => 'Airtel',
'790' => 'Safaricom',
'791' => 'Safaricom',
'792' => 'Safaricom',
'793' => 'Safaricom',
'794' => 'Safaricom',
'795' => 'Safaricom',
'796' => 'Safaricom',
'797' => 'Safaricom',
'798' => 'Safaricom',
'799' => 'Safaricom',
];
$matches = null;
$phone = '254724123456';
//$phone = '0724123456';
//$phone = '+254724123456';
/*
* Get this part of the number 724 ===> (+|254 [724] 123456) | ( 0 [724] 123456)
* and uses it to get the Service provider from the array above.
*/
$returnValue = preg_match('/(\+?254|0|^)([0-9]{3})[0-9]{6}\z/', $phone, $matches);
if($returnValue)
{
// Is a valid phone number
echo "{$phone} is a {$providers[$matches[2]]} line."; // --> 254724123456 is a Safaricom line.
}else{
// Is not a valid phone number
echo "No Match Found";
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment