PHP Classes

Countries Info: Retrieve country information from MySQL database

Recommend this page to a friend!
  Info   View files Documentation   View files View files (5)   DownloadInstall with Composer Download .zip   Reputation   Support forum (3)   Blog    
Ratings Unique User Downloads Download Rankings
StarStar 29%Total: 323 All time: 7,209 This week: 455Up
Version License PHP version Categories
countries-info 1.0.7Custom (specified...5Localization, PHP 5, Geography


This class can retrieve country information from MySQL database.

It can query a MySQL database to retrieve several details of information about a country like: code, flag, name, latitude, longitude, elevation, continent, locale, IDD dial code, currency code, total population, total area.

The country name can be retrieved in different languages like arabic, czech, danish, german, english, spanish, french, hebrew, italian, japanese, ducth, portuguese, russian, chinese, etc..

Innovation Award
PHP Programming Innovation award nominee
May 2017
Number 2
Many applications need to know the names of the countries to show them to their users in their own native language.

This package provides a solution to quickly lookup the names of each country in many different languages by querying a MySQL database.

Manuel Lemos
Picture of Peter Kahl
  Performance   Level  
Name: Peter Kahl <contact>
Classes: 37 packages by
Country: United Kingdom
Age: ???
All time rank: 41721 in United Kingdom
Week rank: 286 Up10 in United Kingdom Up
Innovation award
Innovation award
Nominee: 23x

Winner: 2x


Country Info (Multilingual)

License If this project has business value for you then don't hesitate to support me with a small donation.

Converts country code to full name in any of 17 languages and other country-related information from database.

Available data (for given country code): * country names in 17 languages (and/or script variations) * emoji flag * locale code * continent code * latitude and longitude of country's centroid * elevation (altitude) in metres * international calling code * total population * area in km≤ * currency code * Google Maps API place_id * TODO: capital city

Available languages: * Arabic (????) * Czech (?e?tina) * German (Deutsch) * Danish (dansk) * English * Spanish (espaŮol) * French (franÁais) * Hebrew (???????) * Italian (italiano) * Japanese (???) * Dutch (Nederlands) * Portuguese (portuguÍs) * Russian (???????) * Slovak (sloven?ina) * Chinese simplified (????) * Chinese traditional (????) * Welsh (Cymraeg) ... incomplete but working

Be cautious when upgrading to newer version

Consider backing up your existing countries database if it contains bespoke data. Your existing countries database will be dropped during the import (SQL query) of the new database dump.

Usage Examples

Generate HTML for select (drop-down list) of country names:

use peterkahl\Countries\Countries;

$link = mysqli_connect($DB_HOSTNAME, $DB_USERNAME, $DB_PASSWORD, $DB_DBNAME);

mysqli_set_charset($link, "utf8mb4");

$countryObj = new Countries;
$countryObj->dbresource = $link;
$array = $countryObj->getAllCodesNames('zh-tw'); # Chinese traditional

echo '<select>';
foreach ($array as $val) {
  echo '<option value="'.$val['code'].'">'.$val['name'].'</option>';
echo '</select>';

Translate country name:

use peterkahl\Countries\Countries;

$link = mysqli_connect($DB_HOSTNAME, $DB_USERNAME, $DB_PASSWORD, $DB_DBNAME);

mysqli_set_charset($link, "utf8mb4");

$countryObj = new Countries;
$countryObj->dbresource = $link;

echo $countryObj->code2countryName('US', 'ru'); # ??????????? ?????

Get all information for a given country:

use peterkahl\Countries\Countries;

$link = mysqli_connect($DB_HOSTNAME, $DB_USERNAME, $DB_PASSWORD, $DB_DBNAME);

mysqli_set_charset($link, "utf8mb4");

$countryObj = new Countries;
$countryObj->dbresource = $link;

$array = $countryObj->getCountryInfo('VC');
array(29) {
  string(2) "VC"
  string(3) "XCD"
  string(8) "??"
  string(32) "Saint Vincent and the Grenadines"
  string(36) "???? ????? ????????"
  string(26) "Svatż Vincent a Grenadiny"
  string(26) "Saint Vincent a'r Grenadiniaid"
  string(29) "Saint Vincent og Grenadinerne"
  string(30) "St. Vincent und die Grenadinen"
  string(32) "Saint Vincent and the Grenadines"
  string(28) "San Vicente y las Granadinas"
  string(31) "Saint-Vincent-et-les Grenadines"
  string(40) "??? ?????? ??????????"
  string(26) "Saint Vincent e Grenadines"
  string(54) "??????????????????"
  string(30) "Saint Vincent en de Grenadines"
  string(25) "S„o Vicente e Granadinas"
  string(45) "????-??????? ? ?????????"
  string(28) "Svštż Vincent a GrenadŪny"
  string(30) "??????????"
  string(30) "??????????"
  string(10) "13.2528179"
  string(11) "-61.1970774"
  string(7) "624.517"
  string(2) "NA"
  string(5) "en_VC"
  string(4) "1784"
  string(3) "389"
  string(6) "103000"
  string(27) "ChIJuzU5nuKsQIwRsaHSjejT_TE"

  Files folder image Files  
File Role Description
Files folder imagesrc (1 file)
Accessible without login Plain text file composer.json Data Auxiliary data
Accessible without login Plain text file countries.sql Data Auxiliary data
Accessible without login Plain text file LICENSE Lic. License text
Accessible without login Plain text file Doc. Documentation

  Files folder image Files  /  src  
File Role Description
  Plain text file Countries.php Class Class source

 Version Control Unique User Downloads Download Rankings  
This week:0
All time:7,209
This week:455Up
User Ratings User Comments (1)
 All time