仅使用libphonenumber-for-php将号码验证为英国手机号码

时间:2019-05-21 01:58:42

标签: php libphonenumber

我正在使用libphonenumber-for-php编写一个验证类,该类将检查数字是否为英国手机号码。其他任何事情都会失败。

public function validate(){
    $phoneUtil = \libphonenumber\PhoneNumberUtil::getInstance();
    $carrierMapper = \libphonenumber\PhoneNumberToCarrierMapper::getInstance();

    foreach ($this->phoneNumbers as $number){
        try {
            $phoneNumberObject = $phoneUtil->parse($number, 'GB');
        }catch (NumberParseException $e){
            echo $e;
        }

        $valid = $phoneUtil->isValidNumber($phoneNumberObject);
        $type = $phoneUtil->getNumberType($phoneNumberObject); 
        $carrier = $carrierMapper->getNameForNumber($phoneNumberObject, 'en');
    }
}

这是否全部必要?我检查它是否为有效号码,然后检查它是否为手机号码类型。我还要做些什么才能100%确定传入的号码是有效的英国手机号码?

1 个答案:

答案 0 :(得分:0)

我认为获取载体的方法是getDescriptionForNumber。我不是一个完整的PHP程序员,但是我在Python和C中使用了该库,然后由于该方法而遇到了相同的错误。