Skip to content

Instantly share code, notes, and snippets.

@stevenmc
Created August 22, 2013 16:24
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save stevenmc/6309505 to your computer and use it in GitHub Desktop.
Save stevenmc/6309505 to your computer and use it in GitHub Desktop.
Basic implementation of https://github.com/giggsey/libphonenumber-for-php or https://github.com/practo/libphonenumber-for-php within CakePHP Model for phone number validation.
<?php
/**
* Presumes you've installed Composer in the directory according to http://getcomposer.org/doc/01-basic-usage.md
*/
require_once(APP . 'Vendor' . DS. 'LibPhoneNumber' . DS . 'src' . DS . 'libphonenumber'. DS ."PhoneNumberUtil.php");
require_once(APP . 'Vendor' . DS. 'LibPhoneNumber' . DS . 'src' . DS . 'libphonenumber'. DS ."CountryCodeToRegionCodeMap.php");
require_once(APP . 'Vendor' . DS. 'LibPhoneNumber' . DS . 'src' . DS . 'libphonenumber'. DS ."PhoneNumber.php");
require_once(APP . 'Vendor' . DS. 'LibPhoneNumber' . DS . 'src' . DS . 'libphonenumber'. DS ."data" . DS . "PhoneNumberMetadata_GB.php");
require_once(APP . 'Vendor' . DS. 'LibPhoneNumber' . DS . 'src' . DS . 'libphonenumber'. DS ."PhoneMetadata.php");
require_once(APP . 'Vendor' . DS. 'LibPhoneNumber' . DS . 'src' . DS . 'libphonenumber'. DS ."PhoneNumberDesc.php");
require_once(APP . 'Vendor' . DS. 'LibPhoneNumber' . DS . 'src' . DS . 'libphonenumber'. DS ."NumberFormat.php");
require_once(APP . 'Vendor' . DS. 'LibPhoneNumber' . DS . 'src' . DS . 'libphonenumber'. DS ."Matcher.php");
require_once(APP . 'Vendor' . DS. 'LibPhoneNumber' . DS . 'src' . DS . 'libphonenumber'. DS ."CountryCodeSource.php");
require_once(APP . 'Vendor' . DS. 'LibPhoneNumber' . DS . 'src' . DS . 'libphonenumber'. DS ."PhoneNumberType.php");
require_once(APP . 'Vendor' . DS. 'LibPhoneNumber' . DS . 'src' . DS . 'libphonenumber'. DS ."PhoneNumberFormat.php");
public function validatePhoneNumber($phoneNumber) {
$phoneUtil = \libphonenumber\PhoneNumberUtil::getInstance();
try {
$numberData = $phoneUtil->parse($phoneNumber, "GB");
$isValid = $phoneUtil->isValidNumber($numberData);
if ($isValid){
/* Included to demo further possible functionality
var_dump($numberData);
echo $phoneUtil->format($numberData, \libphonenumber\PhoneNumberFormat::NATIONAL) . PHP_EOL;
echo $phoneUtil->format($numberData, \libphonenumber\PhoneNumberFormat::INTERNATIONAL) . PHP_EOL;
echo $phoneUtil->format($numberData, \libphonenumber\PhoneNumberFormat::E164) . PHP_EOL;
echo $phoneUtil->formatOutOfCountryCallingNumber($numberData, "GB") . PHP_EOL;
*/
}else{
return false;
}
} catch (NumberParseException $e) {
echo $e;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment