PHP Classes
elePHPant
Icontem

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    
Last Updated Ratings Unique User Downloads Download Rankings
2018-06-27 (3 months ago) RSS 2.0 feedNot enough user ratingsTotal: 294 All time: 7,244 This week: 410Up
Version License PHP version Categories
countries-info 1.0.7Custom (specified...5Localization, PHP 5, Geography
Description Author

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
  Performance   Level  
Name: Peter Kahl <contact>
Classes: 36 packages by
Country: United Kingdom United Kingdom
Age: ???
All time rank: 56327 in United Kingdom United Kingdom
Week rank: 15 Up1 in United Kingdom United Kingdom Up
Innovation award
Innovation award
Nominee: 21x

Winner: 1x

Details

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');
var_dump($array);
/*
array(29) {
  ["code"]=>
  string(2) "VC"
  ["cur_code"]=>
  string(3) "XCD"
  ["flag"]=>
  string(8) "??"
  ["longname"]=>
  string(32) "Saint Vincent and the Grenadines"
  ["name_ar"]=>
  string(36) "???? ????? ????????"
  ["name_cs"]=>
  string(26) "Svatż Vincent a Grenadiny"
  ["name_cy"]=>
  string(26) "Saint Vincent a'r Grenadiniaid"
  ["name_da"]=>
  string(29) "Saint Vincent og Grenadinerne"
  ["name_de"]=>
  string(30) "St. Vincent und die Grenadinen"
  ["name_en"]=>
  string(32) "Saint Vincent and the Grenadines"
  ["name_es"]=>
  string(28) "San Vicente y las Granadinas"
  ["name_fr"]=>
  string(31) "Saint-Vincent-et-les Grenadines"
  ["name_he"]=>
  string(40) "??? ?????? ??????????"
  ["name_it"]=>
  string(26) "Saint Vincent e Grenadines"
  ["name_ja"]=>
  string(54) "??????????????????"
  ["name_nl"]=>
  string(30) "Saint Vincent en de Grenadines"
  ["name_pt"]=>
  string(25) "S„o Vicente e Granadinas"
  ["name_ru"]=>
  string(45) "????-??????? ? ?????????"
  ["name_sk"]=>
  string(28) "Svštż Vincent a GrenadŪny"
  ["name_zh-cn"]=>
  string(30) "??????????"
  ["name_zh-hk"]=>
  string(30) "??????????"
  ["latitude"]=>
  string(10) "13.2528179"
  ["longitude"]=>
  string(11) "-61.1970774"
  ["elevation"]=>
  string(7) "624.517"
  ["continent"]=>
  string(2) "NA"
  ["locale"]=>
  string(5) "en_VC"
  ["dialcode"]=>
  string(4) "1784"
  ["area"]=>
  string(3) "389"
  ["population"]=>
  string(6) "103000"
  ["place_id"]=>
  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 README.md 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  
 100%
Total:294
This week:0
All time:7,244
This week:410Up
User Comments (1)