radicalmart / libphonenumber

用于解析、格式化和验证国际电话号码的库。

1.1.6 2024-08-15 08:42 UTC

This package is auto-updated.

Last update: 2024-09-15 08:50:04 UTC


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