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() - ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, соотвСтствуСт Π»ΠΈ пСрСданная строка Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ
οΌ‹Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π΅Ρ‰Ρ‘ Π½Π΅ добавляли примСчания для страницы