CakeFest 2024: The Official CakePHP Conference

Normalizer::getRawDecomposition

normalizer_get_raw_decomposition

(PHP 7 >= 7.3, PHP 8)

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

Описание

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

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

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

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)

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

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top