Я использую SMS API для отправки кода подтверждения на телефон.
Его параметры требуют от меня установить формат номера телефона посетителя на международный, например +9912345678 вместо 012 345 678.
Есть ли класс php (без Composer), который сделал бы это для меня (пока что не смог найти что-либо на GG), учитывая, что я знаю как страну пользователя (из выборочного ввода), так и номер (из текстового ввода), который он представил на предыдущая веб-страница?
Ранее я использовал эту библиотеку (без композитора) и работал хорошо: https://github.com/davideme/libphonenumber-for-PHP
Вам нужно только include
в вашем php PhoneNumberUtil.php
и этот файл знает, что еще нужно включить.
Вы можете отформатировать число следующим образом:
$swissNumberStr = "044 668 18 00";
$phoneUtil = PhoneNumberUtil::getInstance();
try {
$swissNumberProto = $phoneUtil->parseAndKeepRawInput($swissNumberStr, "CH");
var_dump($swissNumberProto);
} catch (NumberParseException $e) {
echo $e;
}
echo $phoneUtil->format($swissNumberProto, PhoneNumberFormat::INTERNATIONAL)
Проверьте demo.php
чтобы увидеть больше примеров того, как использовать библиотеку.
Вы можете сделать это очень легко, просто заменив 0 на код страны.
Пример:
$originalNumber = '012345678';
$countryCode = '+99'; // Replace with known country code of user.
$internationalNumber = preg_replace('/^0/', $countryCode, $originalNumber);
echo $internationalNumber; // Will output: +9912345678
Надеюсь это поможет.