Skip to content

IsoFlags

License Latest Stable Version Total Downloads Tests codecov PHP Version

A modern PHP library for generating emoji flags from ISO 3166-1 alpha-2 country codes and extended regional codes.

Features

Generate emoji flags from ISO 3166-1 alpha-2 country codes Extended regional codes support (Kosovo, Ascension Island, etc.) Type-safe with PHP 8.4 enums Static and instance methods available 100% test coverage (257 tests, 1018 assertions) Zero dependencies - only requires PHP 8.4+

Quick Example

use Rteeom\FlagsGenerator\FlagsGenerator;

// Get flag emoji
echo FlagsGenerator::getFlag('gb'); // πŸ‡¬πŸ‡§
echo FlagsGenerator::getFlag('ua'); // πŸ‡ΊπŸ‡¦
echo FlagsGenerator::getFlag('us'); // πŸ‡ΊπŸ‡Έ

// Safely get flag or null
$flag = FlagsGenerator::getFlagOrNull('invalid'); // null

Installation

Install via Composer:

composer require rteeom/isoflags

Requirements: PHP 8.4 or higher

How It Works

The library converts two-letter country codes to emoji flags by transforming each letter into its corresponding Regional Indicator Symbol:

  1. Each letter is converted to its Unicode codepoint (offset by 127365)
  2. The codepoint is encoded to UTF-8 bytes using native PHP functions
  3. Regional Indicator Symbols (U+1F1E6 to U+1F1FF) combine to form flag emojis

Example: GB becomes:

  • G β†’ πŸ‡¬ (U+1F1EC = 127468)
  • B β†’ πŸ‡§ (U+1F1E7 = 127463)
  • Combined: πŸ‡¬πŸ‡§

The library uses no external dependencies - just native PHP byte packing to generate UTF-8 encoded emoji flags.

What's Next?

Support

License

MIT License - see LICENSE file for details.