propertyguru / e164-phone-number-formatter-bundle
此包已被废弃且不再维护。未建议替代包。
关于此包的最新版本(v1.0)没有可用的许可信息。
Propertygurus的电话号码格式化器
v1.0
2015-11-25 03:56 UTC
Requires
- php: >=5.4
Requires (Dev)
- mockery/mockery: dev-master@dev
- phpunit/phpunit: 4.6.*
- squizlabs/php_codesniffer: >=2.3.0
- symfony/symfony: ~2.6,>=2.6.6
This package is not auto-updated.
Last update: 2024-06-22 17:13:35 UTC
README
E164-phone-number-formatter-bundle
Symfony2 扩展包,用于将电话号码格式化为 E164 格式。
安装
将仓库添加到您的 composer.json 文件中
// composer.json { "require": { // ... "propertyguru/E164-phone-number-formatter-bundle" : "dev-master" } }
在您的 AppKernel 中注册扩展包
// app/AppKernel.php public function registerBundles() { $bundles = array( // ... new Guru\PhoneNumberFormatterBundle\GuruPhoneNumberFormatterBundle(), // ... ); }
使用方法
配置
$formatter = $this->container->get('guru_phone_number_formatter.formatter');
// optional: set current country - if known
$formatter->setDefaultRegionCode('my');
如果您已经知道国家代码
$e164 = $formatter->numberToE164('0101234567', '60');
如果国家代码已嵌入号码中
$e164 = $formatter->numberToE164('+60101234567');
如果您不确定国家代码是否已嵌入
$e164 = $formatter->numberToE164('+60101234567', '60');
以上所有都将输出
array(
'countryCode' => '60',
'nationalDestinationCode' => '010',
'nationalDestinationCodeInternational' => '10',
'subscriberNumber' => '1234567',
'isMobile' => true,
)
嵌入的国家代码优先于指定的国家代码
$e164 = $formatter->numberToE164('+65101234567', '60');
并输出
array(
'countryCode' => '65',
'nationalDestinationCode' => NULL,
'nationalDestinationCodeInternational' => NULL,
'subscriberNumber' => '101234567',
'isMobile' => false,
)
加权结果
可以定义一些国家代码比其他代码更优先。如果一个号码可以匹配多个国家,那么只考虑权重最高的那个
$formatter->setRegionWeights(array(
'my' => 1,
'sg' => 2
));
示例:98123123可以是马来西亚或新加坡的电话号码。