|
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
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 |
| |
|
|
Innovation award
Nominee: 23x
Winner: 2x |
|
Country Info (Multilingual)
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"
}
*/