Преобразование доменного имени из IDNA ASCII в Unicode

# idn_to_utf8

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.2, PECL idn >= 0.1)

idn_to_utf8 — Преобразование доменного имени из IDNA ASCII в Unicode

### Описание

Процедурный стиль

function idn_to_utf8(
string `$domain`,
int `$flags` = `IDNA_DEFAULT`,
int `$variant` = `INTL_IDNA_VARIANT_UTS46`,
array `&$idna_info` = `null`
): string|false

Эта функция преобразовывает доменные имена из формата IDNA ASCII в Unicode, в кодировке UTF-8.

### Список параметров

`domain`

  Доменное имя в формате IDNA ASCII.

`flags`

  Опции преобразования - комбинация констант IDNA_* (кроме констант IDNA_ERROR_*).

`variant`

  `INTL_IDNA_VARIANT_2003` (объявлена устаревшей начиная с PHP 7.2.0) для IDNA 2003 или `INTL_IDNA_VARIANT_UTS46` (доступна только с ICU 4.6) для UTS #46.

`idna_info`

  Этот параметр используется только если используется `INTL_IDNA_VARIANT_UTS46` в `variant`. В этом случае он будет заполнен массивом с ключами `'result'`, возможными ошибочными результатами преобразования, `'isTransitionalDifferent'`, логическое выражение означает изменило или могло бы изменить результат при использовании сквозного механизма UTS #46, и `'errors'`, содержащими целочисленное представление битовой маски из констант IDNA_ERROR_*.

### Возвращаемые значения

Возвращает доменное имя, перекодированное из кодировки Unicode в кодировку UTF-8, или `false`, если возникла ошибка.

### Список изменений

Версия | Описание
--- | ---
8.4.0 | Теперь выбрасывает исключение ValueError, если параметр `domain` пустой.
8.4.0 | Теперь выбрасывает исключение ValueError, если параметр `variant` не равен `INTL_IDNA_VARIANT_UTS46`.
7.4.0 | Теперь значение по умолчанию `variant` изменено на `INTL_IDNA_VARIANT_UTS46` вместо устаревшей константы `INTL_IDNA_VARIANT_2003`.
7.2.0 | `INTL_IDNA_VARIANT_2003` объявлена устаревшей, вместо неё используйте `INTL_IDNA_VARIANT_UTS46`.

### Примеры

Пример #1 Пример использования idn_to_utf8()

    <?php

    echo idn_to_utf8('xn--tst-qla.de');

    ?>

Результат выполнения приведённого примера:

    täst.de

### Смотрите также

- idn_to_ascii() - Преобразовывает доменное имя в формат ASCII по спецификации IDNA

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open