libphoneNumberforPHP无法验证电话号码


libphonenumber-for-PHP fails to validate phone number

Iam使用https://github.com/davideme/libphonenumber-for-PHP国际电话无需验证。它工作得很好,但根据github页面中的指导,我已经给出了

"$swissNumberStr="044 668 18 00";"$phoneUtil->parse($swissNumberStr,"CH")

作为输入。。。当我们呼叫时

$isValid=$phoneUtil->isValidNumber($swissNumberProto)

它应该返回true。。因为它是有效的。但对我来说,这是假的。。任何帮助都将不胜感激。。

demo.php

use com'google'i18n'phonenumbers'PhoneNumberUtil;
use com'google'i18n'phonenumbers'PhoneNumberFormat;
use com'google'i18n'phonenumbers'NumberParseException;
require_once 'PhoneNumberUtil.php';
$swissNumberStr = "044 668 18 00";
$phoneUtil = PhoneNumberUtil::getInstance();
try {
    $swissNumberProto = $phoneUtil->parseAndKeepRawInput($swissNumberStr, "CH");
    echo $phoneUtil->getNumberType($swissNumberProto);
    //var_dump($swissNumberProto);
} catch (NumberParseException $e) {
    echo $e;
}
$isValid = $phoneUtil->isValidNumber($swissNumberProto);//return true
var_dump($isValid);
// Produces "+41446681800"
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;

您使用了错误的函数进行解析。

使用

phUtil.Parse(germanNumberStr, "CH")

而不是parseAndKeepRawInput