Skip to content

Instantly share code, notes, and snippets.

@vaibhavpandeyvpz
Last active May 26, 2022 04:24
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 vaibhavpandeyvpz/d8030a5db3a095195c6fb05f0d0a06d3 to your computer and use it in GitHub Desktop.
Save vaibhavpandeyvpz/d8030a5db3a095195c6fb05f0d0a06d3 to your computer and use it in GitHub Desktop.
Normalize phone number inputs from user to E.164 format.
<?php
/**
* @param string|null $number
* @return string|null
*/
function normalize_to_e164(?string $number): ?string
{
if (empty($number)) {
return null;
}
$number = preg_replace('/\D/', '', $number);
if (strpos($number, '00') === 0) {
$number = substr_replace($number, '+', 0, 2);
}
$number = ltrim($number, '0');
if ($number[0] !== '+') {
$number = '+91'.$number;
}
if (strlen($number) === 15 && strpos($number, '+9191') === 0) {
$number = substr_replace($number, '', 2, 2);
}
return $number;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment