libphonenumber\PhoneNumberUtil::parseAndKeepRawInput PHP Method

parseAndKeepRawInput() public method

Parses a string and returns it in proto buffer format. This method differs from {@link #parse} in that it always populates the raw_input field of the protocol buffer with numberToParse as well as the country_code_source field.
public parseAndKeepRawInput ( string $numberToParse, string $defaultRegion, PhoneNumber $phoneNumber = null ) : PhoneNumber
$numberToParse string number that we are attempting to parse. This can contain formatting such as +, ( and -, as well as a phone number extension. It can also be provided in RFC3966 format.
$defaultRegion string region that we are expecting the number to be from. This is only used if the number being parsed is not written in international format. The country calling code for the number in this case would be stored as that of the default region supplied.
$phoneNumber PhoneNumber
return PhoneNumber a phone number proto buffer filled with the parsed number
    public function parseAndKeepRawInput($numberToParse, $defaultRegion, PhoneNumber $phoneNumber = null)
    {
        if ($phoneNumber === null) {
            $phoneNumber = new PhoneNumber();
        }
        $this->parseHelper($numberToParse, $defaultRegion, true, true, $phoneNumber);
        return $phoneNumber;
    }

Usage Example

 public function testParseAndKeepRaw()
 {
     $alphaNumericNumber = new PhoneNumber();
     $alphaNumericNumber->mergeFrom(self::$alphaNumericNumber);
     $alphaNumericNumber->setRawInput("800 six-flags");
     $alphaNumericNumber->setCountryCodeSource(CountryCodeSource::FROM_DEFAULT_COUNTRY);
     $alphaNumericNumber->setPreferredDomesticCarrierCode("");
     $this->assertEquals($alphaNumericNumber, $this->phoneUtil->parseAndKeepRawInput("800 six-flags", RegionCode::US));
     $shorterAlphaNumber = new PhoneNumber();
     $shorterAlphaNumber->setCountryCode(1)->setNationalNumber(8007493524);
     $shorterAlphaNumber->setRawInput("1800 six-flag")->setCountryCodeSource(CountryCodeSource::FROM_NUMBER_WITHOUT_PLUS_SIGN)->setPreferredDomesticCarrierCode("");
     $this->assertEquals($shorterAlphaNumber, $this->phoneUtil->parseAndKeepRawInput("1800 six-flag", RegionCode::US));
     $shorterAlphaNumber->setRawInput("+1800 six-flag")->setCountryCodeSource(CountryCodeSource::FROM_NUMBER_WITH_PLUS_SIGN);
     $this->assertEquals($shorterAlphaNumber, $this->phoneUtil->parseAndKeepRawInput("+1800 six-flag", RegionCode::NZ));
     $shorterAlphaNumber->setRawInput("001800 six-flag")->setCountryCodeSource(CountryCodeSource::FROM_NUMBER_WITH_IDD);
     $this->assertEquals($shorterAlphaNumber, $this->phoneUtil->parseAndKeepRawInput("001800 six-flag", RegionCode::NZ));
     // Invalid region code supplied.
     try {
         $this->phoneUtil->parseAndKeepRawInput("123 456 7890", RegionCode::CS);
         $this->fail("Deprecated region code not allowed: should fail.");
     } catch (NumberParseException $e) {
         // Expected this exception.
         $this->assertEquals(NumberParseException::INVALID_COUNTRY_CODE, $e->getErrorType(), "Wrong error type stored in exception.");
     }
     $koreanNumber = new PhoneNumber();
     $koreanNumber->setCountryCode(82)->setNationalNumber(22123456)->setRawInput("08122123456")->setCountryCodeSource(CountryCodeSource::FROM_DEFAULT_COUNTRY)->setPreferredDomesticCarrierCode("81");
     $this->assertEquals($koreanNumber, $this->phoneUtil->parseAndKeepRawInput("08122123456", RegionCode::KR));
 }
All Usage Examples Of libphonenumber\PhoneNumberUtil::parseAndKeepRawInput
PhoneNumberUtil