radicalmart / libphonenumber
用于解析、格式化和验证国际电话号码的库。
1.1.6
2024-08-15 08:42 UTC
Requires
- php: >=7.2.5
- giggsey/libphonenumber-for-php: ^8.13.0
Requires (Dev)
- friendsofphp/php-cs-fixer: v3.4.0
- phpunit/phpunit: ^8.5.34
README
用于解析、格式化和验证国际电话号码的库。该库是 Google 的 libphonenumber 的 "包装" 版本,基于 giggsey/libphonenumber-for-php。
安装
$ composer require radicalmart/libphonenumber
应用
创建类实例
开始使用前,需要创建一个 PhoneNumber
类的实例,并将电话号码字符串作为参数传递。
use RadicalMart\PhoneNumber\PhoneNumber; $phone_number = new PhoneNumber('88124445566');
默认情况下,所有电话号码都解析为俄罗斯,电话号码信息以俄语返回。类的构造函数有两个可选参数 - region
(国家代码,与 ISO 3166-1 的两位表示对应)和 language_code
(语言代码,根据 ISO)
$phone_number = new PhoneNumber('88124445566', 'RU', 'ru_RU');
获取格式化电话号码
要获取格式化电话号码,需要调用方法 format
,并将格式索引作为参数传递。默认使用格式 E164
。
use RadicalMart\PhoneNumber\PhoneNumber; use libphonenumber\PhoneNumberFormat; $phone_number = new PhoneNumber('88124445566'); echo $phone_number->format(); // +78124445566 echo $phone_number->format(PhoneNumberFormat::E164); // +78124445566 echo $phone_number->format(PhoneNumberFormat::INTERNATIONAL); // +7 812 444-55-66 echo $phone_number->format(PhoneNumberFormat::NATIONAL); // 8 (812) 444-55-66 echo $phone_number->format(PhoneNumberFormat::RFC3966); // tel:+7-812-444-55-66
获取其他国家的电话号码
要解析其他国家的电话号码,需要在创建类实例时指定国家代码。
use RadicalMart\PhoneNumber\PhoneNumber; use libphonenumber\PhoneNumberFormat; $phone_number_ua = new PhoneNumber('0679998877', 'UA'); echo $phone_number_ua->format(PhoneNumberFormat::INTERNATIONAL); // +380 67 999 8877
获取电话号码归属地区信息
要获取电话号码归属地区信息,需要调用方法 geocode
。默认情况下,地区信息将以构造函数中指定的语言返回,但也可以传递语言代码作为方法参数。
use RadicalMart\PhoneNumber\PhoneNumber; use libphonenumber\PhoneNumberFormat; $phone_number_ua = new PhoneNumber('0445554488', 'UA', 'uk-UA'); $phone_number_ru = new PhoneNumber('88124445566', 'RU'); echo $phone_number_ru->geocode(); // г. Санкт-Петербург echo $phone_number_ru->geocode('en_GB'); // St Petersburg echo $phone_number_ua->geocode(); // м. Київ echo $phone_number_ua->geocode('en_GB'); // Kyiv city
获取电话号码运营商信息
要获取与电话号码关联的运营商信息,需要调用方法 carrier
。默认情况下,运营商信息将以构造函数中指定的语言返回,但也可以传递语言代码作为方法参数。
use RadicalMart\PhoneNumber\PhoneNumber; use libphonenumber\PhoneNumberFormat; $phone_number_ua = new PhoneNumber('0679988877', 'UA', 'uk-UA'); $phone_number_ru = new PhoneNumber('9204445566', 'RU'); echo $phone_number_ru->carrier(); // МегаФон echo $phone_number_ru->carrier('en_GB'); // MegaFon echo $phone_number_ua->carrier(); // Київстар echo $phone_number_ua->carrier('en_GB'); // Kyivstar