将本地 phone 号码格式化为国际(已知国家)
formatting local phone numbers into international (knowing countries)
我使用短信 API 向 phone 发送确认码。
它的参数要求我将访客phone号码格式设置为国际格式,例如+9912345678而不是012 345 678。
考虑到我知道用户的两个国家(来自 select 输入),是否有 php class(没有 Composer)可以为我做(到目前为止在 GG 上找不到任何东西)和他在上一个网页上提交的数字(来自文本输入)?
您只需将 0 替换为国家/地区代码即可轻松完成此操作。
示例:
$originalNumber = '012345678';
$countryCode = '+99'; // Replace with known country code of user.
$internationalNumber = preg_replace('/^0/', $countryCode, $originalNumber);
echo $internationalNumber; // Will output: +9912345678
希望对您有所帮助。
我以前使用过这个库(没有作曲家)并且运行良好: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
以查看有关如何使用库的更多示例。
根据@Huso 的回答,我编写了以下函数来格式化和清理(删除破折号、点和空格)phone 数字:
function phonize($phoneNumber, $country) {
$countryCodes = array(
'ch' => '+41',
'de' => '+43',
'it' => '+39'
);
return preg_replace('/[^0-9+]/', '',
preg_replace('/^0/', $countryCodes[$country], $phoneNumber));
}
使用:
$phone = '022 123 43 65';
$country = 'ch';
$phone = phonize($phone, $country);
我使用短信 API 向 phone 发送确认码。
它的参数要求我将访客phone号码格式设置为国际格式,例如+9912345678而不是012 345 678。
考虑到我知道用户的两个国家(来自 select 输入),是否有 php class(没有 Composer)可以为我做(到目前为止在 GG 上找不到任何东西)和他在上一个网页上提交的数字(来自文本输入)?
您只需将 0 替换为国家/地区代码即可轻松完成此操作。
示例:
$originalNumber = '012345678';
$countryCode = '+99'; // Replace with known country code of user.
$internationalNumber = preg_replace('/^0/', $countryCode, $originalNumber);
echo $internationalNumber; // Will output: +9912345678
希望对您有所帮助。
我以前使用过这个库(没有作曲家)并且运行良好: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
以查看有关如何使用库的更多示例。
根据@Huso 的回答,我编写了以下函数来格式化和清理(删除破折号、点和空格)phone 数字:
function phonize($phoneNumber, $country) {
$countryCodes = array(
'ch' => '+41',
'de' => '+43',
'it' => '+39'
);
return preg_replace('/[^0-9+]/', '',
preg_replace('/^0/', $countryCodes[$country], $phoneNumber));
}
使用:
$phone = '022 123 43 65';
$country = 'ch';
$phone = phonize($phone, $country);