本文整理汇总了PHP中PhoneNumber::clearRawInput方法的典型用法代码示例。如果您正苦于以下问题:PHP PhoneNumber::clearRawInput方法的具体用法?PHP PhoneNumber::clearRawInput怎么用?PHP PhoneNumber::clearRawInput使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PhoneNumber
的用法示例。
在下文中一共展示了PhoneNumber::clearRawInput方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: isNumberMatch
/**
* Takes two phone numbers and compares them for equality.
*
* <p>Returns EXACT_MATCH if the country_code, NSN, presence of a leading zero
* for Italian numbers and any extension present are the same. Returns NSN_MATCH
* if either or both has no region specified, and the NSNs and extensions are
* the same. Returns SHORT_NSN_MATCH if either or both has no region specified,
* or the region specified is the same, and one NSN could be a shorter version
* of the other number. This includes the case where one has an extension
* specified, and the other does not. Returns NO_MATCH otherwise. For example,
* the numbers +1 345 657 1234 and 657 1234 are a SHORT_NSN_MATCH. The numbers
* +1 345 657 1234 and 345 657 are a NO_MATCH.
*
* @param $firstNumberIn PhoneNumber|string First number to compare. If it is a
* string it can contain formatting, and can have country calling code specified
* with + at the start.
* @param $secondNumberIn PhoneNumber|string Second number to compare. If it is a
* string it can contain formatting, and can have country calling code specified
* with + at the start.
* @throws \InvalidArgumentException
* @return int {MatchType} NOT_A_NUMBER, NO_MATCH,
*/
public function isNumberMatch($firstNumberIn, $secondNumberIn)
{
if (is_string($firstNumberIn) && is_string($secondNumberIn)) {
try {
$firstNumberAsProto = $this->parse($firstNumberIn, self::UNKNOWN_REGION);
return $this->isNumberMatch($firstNumberAsProto, $secondNumberIn);
} catch (NumberParseException $e) {
if ($e->getErrorType() === NumberParseException::INVALID_COUNTRY_CODE) {
try {
$secondNumberAsProto = $this->parse($secondNumberIn, self::UNKNOWN_REGION);
return $this->isNumberMatch($secondNumberAsProto, $firstNumberIn);
} catch (NumberParseException $e2) {
if ($e2->getErrorType() === NumberParseException::INVALID_COUNTRY_CODE) {
try {
$firstNumberProto = new PhoneNumber();
$secondNumberProto = new PhoneNumber();
$this->parseHelper($firstNumberIn, null, false, false, $firstNumberProto);
$this->parseHelper($secondNumberIn, null, false, false, $secondNumberProto);
return $this->isNumberMatch($firstNumberProto, $secondNumberProto);
} catch (NumberParseException $e3) {
// Fall through and return MatchType::NOT_A_NUMBER
}
}
}
}
}
return MatchType::NOT_A_NUMBER;
}
if ($firstNumberIn instanceof PhoneNumber && is_string($secondNumberIn)) {
// First see if the second number has an implicit country calling code, by attempting to parse
// it.
try {
$secondNumberAsProto = $this->parse($secondNumberIn, self::UNKNOWN_REGION);
return $this->isNumberMatch($firstNumberIn, $secondNumberAsProto);
} catch (NumberParseException $e) {
if ($e->getErrorType() === NumberParseException::INVALID_COUNTRY_CODE) {
// The second number has no country calling code. EXACT_MATCH is no longer possible.
// We parse it as if the region was the same as that for the first number, and if
// EXACT_MATCH is returned, we replace this with NSN_MATCH.
$firstNumberRegion = $this->getRegionCodeForCountryCode($firstNumberIn->getCountryCode());
try {
if ($firstNumberRegion != self::UNKNOWN_REGION) {
$secondNumberWithFirstNumberRegion = $this->parse($secondNumberIn, $firstNumberRegion);
$match = $this->isNumberMatch($firstNumberIn, $secondNumberWithFirstNumberRegion);
if ($match === MatchType::EXACT_MATCH) {
return MatchType::NSN_MATCH;
}
return $match;
} else {
// If the first number didn't have a valid country calling code, then we parse the
// second number without one as well.
$secondNumberProto = new PhoneNumber();
$this->parseHelper($secondNumberIn, null, false, false, $secondNumberProto);
return $this->isNumberMatch($firstNumberIn, $secondNumberProto);
}
} catch (NumberParseException $e2) {
// Fall-through to return NOT_A_NUMBER.
}
}
}
}
if ($firstNumberIn instanceof PhoneNumber && $secondNumberIn instanceof PhoneNumber) {
// Make copies of the phone number so that the numbers passed in are not edited.
$firstNumber = new PhoneNumber();
$firstNumber->mergeFrom($firstNumberIn);
$secondNumber = new PhoneNumber();
$secondNumber->mergeFrom($secondNumberIn);
// First clear raw_input, country_code_source and preferred_domestic_carrier_code fields and any
// empty-string extensions so that we can use the proto-buffer equality method.
$firstNumber->clearRawInput();
$firstNumber->clearCountryCodeSource();
$firstNumber->clearPreferredDomesticCarrierCode();
$secondNumber->clearRawInput();
$secondNumber->clearCountryCodeSource();
$secondNumber->clearPreferredDomesticCarrierCode();
if ($firstNumber->hasExtension() && mb_strlen($firstNumber->getExtension()) === 0) {
$firstNumber->clearExtension();
}
//.........这里部分代码省略.........