The PhoneNumberOfflineGeocoder provides geographic location descriptions for phone numbers in multiple languages. This is useful for displaying where a phone number is from to your users.
This feature works offline using precompiled metadata. It provides city or region-level information, not precise GPS coordinates.
For some locales, if specific city data isn’t available, it falls back to the country name.
$phoneUtil = \libphonenumber\PhoneNumberUtil::getInstance();$geocoder = \libphonenumber\geocoding\PhoneNumberOfflineGeocoder::getInstance();$gbNumber = $phoneUtil->parse('0161 496 0000', 'GB');// For UK usersecho $geocoder->getDescriptionForNumber($gbNumber, 'en_GB');// Output: Manchester// For US usersecho $geocoder->getDescriptionForNumber($gbNumber, 'en_US');// Output: United Kingdom// For Korean usersecho $geocoder->getDescriptionForNumber($gbNumber, 'ko_KR');// Output: 영국 (United Kingdom)
$phoneUtil = \libphonenumber\PhoneNumberUtil::getInstance();$geocoder = \libphonenumber\geocoding\PhoneNumberOfflineGeocoder::getInstance();// Mobile numbers may not have specific location data$mobileNumber = $phoneUtil->parse('+44 7400 123456', 'GB');$location = $geocoder->getDescriptionForNumber($mobileNumber, 'en_US');if (empty($location)) { echo "No location data available";} else { echo $location; // May show "United Kingdom" or be empty}// Toll-free numbers typically don't have location data$tollFree = $phoneUtil->parse('1-800-FLOWERS', 'US');$location = $geocoder->getDescriptionForNumber($tollFree, 'en_US');// May return empty string or country name
Mobile, toll-free, and some other number types may not have detailed geographic information.