Извлекает свойство Decomposition_Mapping для заданного символа UTF-8

# Normalizer::getRawDecomposition

# normalizer_get_raw_decomposition

(PHP 7 >= 7.3, PHP 8)

Normalizer::getRawDecomposition -- normalizer_get_raw_decomposition — Извлекает свойство Decomposition_Mapping для заданного символа UTF-8

### Описание

Объектно-ориентированный стиль

public static function Normalizer::getRawDecomposition(string `$string`, int `$form` = `Normalizer::FORM_C`): ?string

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

function normalizer_get_raw_decomposition(string `$string`, int `$form` = `Normalizer::FORM_C`): ?string

Извлекает свойство Decomposition_Mapping, как определено в Unicode Character Database (UCD), для заданного символа UTF-8.

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

`string`

  Строка, которая должна представлять из себя единичный символ в кодировке UTF-8.

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

Возвращает строку (string), содержащую свойство Decomposition_Mapping, если оно присутствует в UCD.

Возвращает `null` если для символа отсутствует свойство Decomposition_Mapping.

### Примеры

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

    <?php

    $result = "";
    $strings = [
        "a",
        "\u{FFDA}",
        "\u{FDFA}",
        "",
        "aa",
        "\xF5",
    ];

    foreach ($strings as $string) {
        $decomposition = Normalizer::getRawDecomposition($string);
        // $decomposition = normalizer_get_raw_decomposition($string); Процедурный стиль

        $error_code = intl_get_error_code();
        $error_message = intl_get_error_message();

        $string_hex = bin2hex($string);
        $result .= "---------------------\n";

        if ($decomposition === null) {
            $result .= "'$string_hex' не имеет соответствия декомпозиции\n" ;
        } else {
            $result .= "'$string_hex' имеет соответствие декомпозиции '" . bin2hex($decomposition) . "'\n" ;
        }

        $result .= "error info: '$error_message' ($error_code)\n";
    }

    echo $result;
    ?>

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

    ---------------------
    '61' не имеет соответствия декомпозиции
    error info: 'U_ZERO_ERROR' (0)
    ---------------------
    'efbf9a' имеет соответствие декомпозиции 'e385a1'
    error info: 'U_ZERO_ERROR' (0)
    ---------------------
    'efb7ba' имеет соответствие декомпозиции 'd8b5d984d98920d8a7d984d984d98720d8b9d984d98ad98720d988d8b3d984d985'
    error info: 'U_ZERO_ERROR' (0)
    ---------------------
    '' не имеет соответствия декомпозиции
    error info: 'Input string must be exactly one UTF-8 encoded code point long.: U_ILLEGAL_ARGUMENT_ERROR' (1)
    ---------------------
    '6161' не имеет соответствия декомпозиции
    error info: 'Input string must be exactly one UTF-8 encoded code point long.: U_ILLEGAL_ARGUMENT_ERROR' (1)
    ---------------------
    'f5' не имеет соответствия декомпозиции
    error info: 'Code point out of range: U_ILLEGAL_ARGUMENT_ERROR' (1)

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

- Normalizer::normalize() - Нормализация строки
- Normalizer::isNormalized() - Проверить, соответствует ли переданная строка заданной форме нормализации

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