libphonenumber-for-PHP无法验证电话号码

时间:2016-05-12 05:14:35

标签: php validation libphonenumber

Iam使用https://github.com/davideme/libphonenumber-for-PHP进行国际电话验证。它工作正常,但根据我给出的github页面中的指导

" $ swissNumberStr =" 044 668 18 00";" $ phoneUtil->解析($ swissNumberStr,&#34 ; CH&#34);

作为输入...... 当我们打电话时

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

它应该返回真实...因为它是有效的。但对我来说它变得虚假..任何帮助都会非常感激..

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;

1 个答案:

答案 0 :(得分:0)

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

使用

phUtil.Parse(germanNumberStr, "CH")

而不是parseAndKeepRawInput