mch0lic / libphonenumber-for-php
此包已被弃用且不再维护。未建议替代包。
Davide Mendolia开发的电话号码处理库的克隆
dev-master
2012-11-02 11:45 UTC
Requires
- php: >=5.2.6
This package is not auto-updated.
Last update: 2021-08-05 05:41:39 UTC
README
PHP库,用于解析、格式化、存储和验证国际电话号码。
功能亮点
- 支持解析、格式化和验证全球所有国家/地区的电话号码。
- getNumberType - 根据号码本身获取号码类型;能够区分固定电话、移动电话、免费电话、付费电话、共享成本、VoIP和个人号码(在可行的情况下)。
- isNumberMatch - 获取两个号码可能是相同的置信度。
- getExampleNumber/getExampleNumberByType - 为所有国家/地区提供有效的示例号码,可选指定所需的示例电话号码类型。
- isValidNumber - 使用长度和前缀信息对特定地区的电话号码进行完全验证。
快速示例
假设您有一个代表瑞士电话号码的字符串。这是您将解析/规范化为PhoneNumber对象的方式
$swissNumberStr = "044 668 18 00";
$phoneUtil = PhoneNumberUtil::getInstance();
try {
$swissNumberProto = $phoneUtil->parse($swissNumberStr, "CH");
var_dump($swissNumberProto);
} catch (NumberParseException $e) {
echo $e;
}
此时,swissNumberProto包含
object(libphonenumber\PhoneNumber)#221 (5) {
["countryCode":"libphonenumber\PhoneNumber":private]=>
int(41)
["nationalNumber":"libphonenumber\PhoneNumber":private]=>
int(446681800)
["extension":"libphonenumber\PhoneNumber":private]=>
NULL
["italianLeadingZero":"libphonenumber\PhoneNumber":private]=>
NULL
["rawInput":"libphonenumber\PhoneNumber":private]=>
NULL
}
现在让我们验证这个号码是否有效
$isValid = $phoneUtil->isValidNumber($swissNumberProto);//return true
var_dump($isValid);
格式化方法支持几种格式,如下所示
// Produces "+41446681800"
echo $phoneUtil->format($swissNumberProto, PhoneNumberFormat::E164) . PHP_EOL;