Rinvex Country is a simple and lightweight package for retrieving country details with flexibility. A whole bunch of data including name, demonym, capital, iso codes, dialing codes, geo data, currencies, flags, emoji, and other attributes for all 250 countries worldwide at your fingertips.
Installation
You can install this package via composer by running this command:
composer require rinvex/countries
Usage
// Get single country
$egypt = country('eg');
// Get country name // Get country native name
echo $egypt->getName(); echo $egypt->getNativeName();
// Get country official name // Get country ISO 3166-1 alpha2 code
echo $egypt->getOfficialName(); echo $egypt->getIsoAlpha2();
// Get country area // Get country borders
echo $egypt->getArea(); echo $egypt->getBorders();
// Get country currencies // Get country languages
echo $egypt->getCurrencies(); echo $egypt->getLanguages();
// Get country emoji // Get country flag
echo $egypt->getEmoji(); echo $egypt->getFlag();
// Get all countries // Get countries with where condition (continent: Oceania)
$countries = countries(); $whereCountries = \Rinvex\Country\CountryLoader::where('geo.continent', ['OC' => 'Oceania']);
Note: This package is framework-agnostic, so it’s compatible with any PHP framework whatsoever without any dependencies at all, except for the PHP version itself ^7.0. Awesome, huh? ?
Advanced Usage
Here are different advanced country attributes that are self-descriptive. You can use these attributes to get specific information about any country.
$egypt = country('eg');
// Egypt // مصر
$egypt->getName(); $egypt->getNativeName();
// Arab Republic of Egypt // جمهورية مصر العربية
$egypt->getOfficialName(); $egypt->getNativeOfficialName();
// Egyptian // Cairo
$egypt->getDemonym(); $egypt->getCapital();
// EG // EGY
$egypt->getIsoAlpha2(); $egypt->getIsoAlpha3();
// 818 // .eg
$egypt->getIsoNumeric(); $egypt->getTld();
// [".eg",".مصر"] // ["EG","Arab Republic of Egypt"]
$egypt->getTlds(); $egypt->getAltSpellings();
// Arabic // {"ara":"Arabic"}
$egypt->getLanguage(); $egypt->getLanguages();
// Africa // true
$egypt->getContinent(); $egypt->usesPostalCode();
// 27 00 N // 30 00 E
$egypt->getLatitude(); $egypt->getLongitude();
// 26.756103515625 // 29.86229705810547
$egypt->getLatitudeDesc(); $egypt->getLongitudeDesc();
// 31.916667 // 36.333333
$egypt->getMaxLatitude(); $egypt->getMaxLongitude();
// 20.383333 // 24.7
$egypt->getMinLatitude(); $egypt->getMinLongitude();
// 1002450 // Africa
$egypt->getArea(); $egypt->getRegion();
// Northern Africa // EMEA
$egypt->getSubregion(); $egypt->getWorldRegion();
// 002 // 015
$egypt->getRegionCode(); $egypt->getSubregionCode();
// false // ["ISR","LBY","SDN"]
$egypt->isLandlocked(); $egypt->getBorders();
// Yes // 20
$egypt->isIndependent(); $egypt->getCallingCode();
// ["20"] // 0
$egypt->getCallingCodes(); $egypt->getNationalPrefix();
// 9 // [9]
$egypt->getNationalNumberLength(); $egypt->getNationalNumberLengths();
// 2 // [2]
$egypt->getNationalDestinationCodeLength(); $egypt->getnationaldestinationcodelengths();
// "00" // {{recipient}}\n{{street}}\n{{postalcode}} {{city}}\n{{country}}
$egypt->getInternationalPrefix(); $egypt->getAddressFormat();
// 357994 // H2
$egypt->getGeonameid(); $egypt->getEdgar();
// EGY // ua
$egypt->getItu(); $egypt->getMarc();
// EG // ET
$egypt->getWmo(); $egypt->getDs();
// EGY // EG
$egypt->getFifa(); $egypt->getFips();
// 40765 // EGY
$egypt->getGaul(); $egypt->getIoc();
// EGY // 651
$egypt->getCowc(); $egypt->getCown();
// 59 // 469
$egypt->getFao(); $egypt->getImf();
// MAF // null
$egypt->getAr5(); $egypt->isEuMember();
// null // ??
$egypt->getVatRates(); $egypt->getEmoji();
// GeoJson data returned as string // SVG data returned as string
$egypt->getGeoJson(); $egypt->getFlag();
// Divisions returned as array // {"official":"جمهورية مصر العربية","common":"مصر"}
$egypt->getDivisions(); $egypt->getTranslation();
// ['Africa/Cairo'] // ['ar_EG']
$egypt->getTimezones(); $egypt->getLocales();
// {"ara":{"official":"جمهورية مصر العربية","common":"مصر"}}
$egypt->getNativeNames();
// {"iso_4217_code":"EGP","iso_4217_numeric":818,"iso_4217_name":"Egyptian Pound","iso_4217_minor_unit":2}
$egypt->getCurrency();
// {"EGP":{"iso_4217_code":"EGP","iso_4217_numeric":818,"iso_4217_name":"Egyptian Pound","iso_4217_minor_unit":2}}
$egypt->getCurrencies();
// {"ara":{"official":"جمهورية مصر العربية","common":"مصر"},"cym":{"official":"Arab Republic of Egypt","common":"Yr Aifft"},"deu":{"official":"Arabische Republik Ägypten","common":"Ägypten"},"fra":{"official":"République arabe d'Égypte","common":"Égypte"},"hrv":{"official":"Arapska Republika Egipat","common":"Egipat"},"ita":{"official":"Repubblica araba d'Egitto","common":"Egitto"},"jpn":{"official":"エジプト·アラブ共和国","common":"エジプト"},"nld":{"official":"Arabische Republiek Egypte","common":"Egypte"},"por":{"official":"República Árabe do Egipto","common":"Egito"},"rus":{"official":"Арабская Республика Египет","common":"Египет"},"spa":{"official":"República Árabe de Egipto","common":"Egipto"},"fin":{"official":"Egyptin arabitasavalta","common":"Egypti"}}
$egypt->getTranslations();
// {"continent":{"AF":"Africa"},"postal_code":true,"latitude":"27 00 N","latitude_dec":"26.756103515625","longitude":"30 00 E","longitude_dec":"29.86229705810547","max_latitude":"31.916667","max_longitude":"36.333333","min_latitude":"20.383333","min_longitude":"24.7","area":1002450,"region":"Africa","subregion":"Northern Africa","world_region":"EMEA","region_code":"002","subregion_code":"015","landlocked":false,"borders":["ISR","LBY","SDN"],"independent":"Yes"}
$egypt->getGeodata();
// {"geonameid":357994,"edgar":"H2","itu":"EGY","marc":"ua","wmo":"EG","ds":"ET","fifa":"EGY","fips":"EG","gaul":40765,"ioc":"EGY","cowc":"EGY","cown":651,"fao":59,"imf":469,"ar5":"MAF","address_format":"{{recipient}}\n{{street}}\n{{postalcode}} {{city}}\n{{country}}","eu_member":null,"vat_rates":null,"emoji":"??"}
$egypt->getExtra();
// {"name":"Al Iskandariyah","alt_names":["El Iskandariya","al-Iskandariyah","al-Iskandarīyah","Alexandria","Alexandrie","Alexandria"],"geo":{"latitude":31.2000924,"longitude":29.9187387,"min_latitude":31.1173177,"min_longitude":29.8233701,"max_latitude":31.330904,"max_longitude":30.0864016}}
$egypt->getDivision("ALX");
Data Sources
They’ve collected all the data about countries from the following sources.
- Currency Data (27th Sep, 2016): http://www.currency-iso.org
- Emoji Flags (27th Sep, 2016): http://unicode.org/emoji/charts/full-emoji-list.html
- World Borders (27th Sep, 2016): http://thematicmapping.org/downloads/world_borders.php
- GeoJson & SVG Flags (27th Sep, 2016): https://github.com/mledoze/countries/tree/master/data
- Main Country Data, Regions, and Divisions (27th Sep, 2016): https://github.com/hexorx/countries
Other Resources:
- https://en.wikipedia.org
- https://github.com/annexare/Countries
- https://github.com/umpirsky/country-list
- https://github.com/datasets/country-list
- https://github.com/datasets/country-codes
- https://github.com/sripaulgit/country-codes
- https://github.com/alexrabarts/iso_country_codes
- https://github.com/vincentarelbundock/countrycode
- https://github.com/lukes/ISO-3166-Countries-with-Regional-Codes
For more details & Source code, Visit Github.