首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >libphonenumber国家/地区

libphonenumber国家/地区
EN

Stack Overflow用户
提问于 2018-08-17 06:57:05
回答 1查看 555关注 0票数 -1

我正在使用这个库:https://github.com/davideme/libphonenumber-for-PHP。以下是演示代码:

代码语言:javascript
复制
<?php
use com\google\i18n\phonenumbers\PhoneNumberUtil;
use com\google\i18n\phonenumbers\PhoneNumberFormat;
use com\google\i18n\phonenumbers\NumberParseException;

require 'PhoneNumberUtil.php';

$swissNumberStr = "1212-894-3000";
$phoneUtil = PhoneNumberUtil::getInstance();
try {
    $swissNumberProto = $phoneUtil->parseAndKeepRawInput($swissNumberStr, "US");

    echo $phoneUtil->format($swissNumberProto, PhoneNumberFormat::E164) . PHP_EOL;


echo $phoneUtil->format($swissNumberProto, PhoneNumberFormat::INTERNATIONAL) . PHP_EOL;
echo $phoneUtil->format($swissNumberProto, PhoneNumberFormat::NATIONAL) . PHP_EOL;
echo $phoneUtil->format($swissNumberProto, PhoneNumberFormat::E164) . PHP_EOL;

echo $phoneUtil->formatOutOfCountryCallingNumber($swissNumberProto, "US") . PHP_EOL;    
} catch (NumberParseException $e) {
    echo $e;
}

下面是我的输出:

代码语言:javascript
复制
Error type: 0. Missing or invalid default region.

巴基斯坦和其他国家的代码可以工作,但"US""Canada""UK"等不能工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-17 08:27:24

我相信代码中有一个bug。我已经修好了。错误存在于PhoneNumberUtil.php中。函数名

代码语言:javascript
复制
private function init($filePrefix) {

在第231行处搜索称为REGION_CODE_FOR_NON_GEO_ENTITY的关键字,该关键字等于在线定义的119中定义的"001“。由于在数组中没有与"001“匹配的键,因此它取消设置第0个元素"US”。我已经修复了这个错误,我将在GitHub上向开发人员报告。新函数如下所示。

代码语言:javascript
复制
private function init($filePrefix) {
    $this->currentFilePrefix = dirname(__FILE__) . '/data/' . $filePrefix;
    foreach ($this->countryCallingCodeToRegionCodeMap as $regionCodes) {
        $this->supportedRegions = array_merge($this->supportedRegions, $regionCodes);
    }
    $nongeoentity=array_search(self::REGION_CODE_FOR_NON_GEO_ENTITY, $this->supportedRegions);
    if($nongeoentity)
    unset($this->supportedRegions[array_search(self::REGION_CODE_FOR_NON_GEO_ENTITY, $this->supportedRegions)]);
    $this->nanpaRegions = $this->countryCallingCodeToRegionCodeMap[self::NANPA_COUNTRY_CODE];
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51886356

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档