(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.2, PECL idn >= 0.1)
idn_to_utf8 — Convert domain name from IDNA ASCII to Unicode
Procedural style
$domain
   [, int $options = IDNA_DEFAULT
   [, int $variant = INTL_IDNA_VARIANT_UTS46
   [, array &$idna_info
  ]]] ) : stringThis function converts a Unicode domain name from an IDNA ASCII-compatible format to plain Unicode, encoded in UTF-8.
domainDomain to convert in an IDNA ASCII-compatible format.
optionsConversion options - combination of IDNA_* constants (except IDNA_ERROR_* constants).
variant
       Either INTL_IDNA_VARIANT_2003 (deprecated as of PHP 7.2.0) for IDNA 2003 or
       INTL_IDNA_VARIANT_UTS46 (only available as of ICU 4.6) for UTS #46.
      
idna_info
       This parameter can be used only if
       INTL_IDNA_VARIANT_UTS46 was used for
       variant. In that case, it will be filled with an
       array with the keys 'result', the possibly illegal
       result of the transformation,
       'isTransitionalDifferent', a boolean indicating
       whether the usage of the transitional mechanisms of UTS #46 either has
       or would have changed the result and 'errors',
       which is an int representing a bitset of the error
       constants IDNA_ERROR_*.
      
   The domain name in Unicode, encoded in UTF-8,  or FALSE on failure
  
| Version | Description | 
|---|---|
| 7.4.0 | The default value of variantis nowINTL_IDNA_VARIANT_UTS46instead of the deprecatedINTL_IDNA_VARIANT_2003. | 
| 7.2.0 | INTL_IDNA_VARIANT_2003has been deprecated; useINTL_IDNA_VARIANT_UTS46instead. | 
| 5.4.0/PECL 2.0.0b1 | Added the parameters variantandidna_info; UTS #46 support (requires ICU ≥ 4.6). | 
Example #1 idn_to_utf8() example
<?php
echo idn_to_utf8('xn--tst-qla.de'); 
?>
The above example will output:
täst.de