【问题标题】:libphonenumber-for-PHP fails to validate phone numberlibphonenumber-for-PHP 无法验证电话号码
【发布时间】:2016-05-12 05:14:35
【问题描述】:

我使用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;

【问题讨论】:

  • 可能有助于查看您的真实代码...
  • 去掉前缀0
  • @fayyazkl it..remains same..other lines are given exact output.but validation line only shows false..

标签: php validation libphonenumber


【解决方案1】:

你使用了错误的解析函数。

使用

phUtil.Parse(germanNumberStr, "CH")

而不是 parseAndKeepRawInput

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多