Класс Normalizer

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Нормализация β€” процСсс прСобразования символов ΠΈ ΠΈΡ… ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ Π² Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ прСдставлСниС Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ уровня. Π­Ρ‚ΠΎΡ‚ процСсс ΠΊΡ€Π°ΠΉΠ½Π΅ Π²Π°ΠΆΠ΅Π½ ΠΏΡ€ΠΈ сравнСнии строк ΠΏΡ€ΠΈ сортировкС ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ поискС, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈ сохранСнии тСкста, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ сохранился ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ.

ΠšΠΎΠ½ΡΠΎΡ€Ρ†ΠΈΡƒΠΌ Unicode ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ» нСсколько Ρ„ΠΎΡ€ΠΌ Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Π½Ρ‹Π΅ потрСбности ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ:

  • Normalization Form D (NFD) β€” ΠšΠ°Π½ΠΎΠ½ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ Ρ€Π°Π·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅
  • Normalization Form C (NFC) β€” ΠšΠ°Π½ΠΎΠ½ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ Ρ€Π°Π·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ каноничСской сборкой
  • Normalization Form KD (NFKD) β€” БовмСстимоС Ρ€Π°Π·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅
  • Normalization Form KC (NFKC) β€” БовмСстимоС Ρ€Π°Π·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ каноничСской сборкой
Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΡ‹ Π·Π°Π΄Π°ΡŽΡ‚ΡΡ Π² трСбованиях Π½Π°Π±ΠΎΡ€ΠΎΠ² ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ тСкста. ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ с Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΈ Π½Π°Π±ΠΎΡ€Π° Ρ„Π°ΠΉΠ»ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ….

ΠžΠ±Π·ΠΎΡ€ класса

class Normalizer {
/* ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹ */
public const int FORM_D;
public const int NFD;
public const int FORM_KD;
public const int NFKD;
public const int FORM_C;
public const int NFC;
public const int FORM_KC;
public const int NFKC;
public const int FORM_KC_CF;
public const int NFKC_CF;
/* ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ */
public static function getRawDecomposition(string $string, int $form = Normalizer::FORM_C): ?string
public static function isNormalized(string $string, int $form = Normalizer::FORM_C): bool
public static function normalize(string $string, int $form = Normalizer::FORM_C): string|false
}

ΠŸΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ константы

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ Ρ„ΠΎΡ€ΠΌΡƒ Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€:

Normalizer::FORM_C int
Π€ΠΎΡ€ΠΌΠ° Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ C (NFC) β€” ΠšΠ°Π½ΠΎΠ½ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ Ρ€Π°Π·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅, послС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ каноничСская сборка
Normalizer::FORM_D int
Π€ΠΎΡ€ΠΌΠ° Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ D (NFD) β€” ΠšΠ°Π½ΠΎΠ½ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ Ρ€Π°Π·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅
Normalizer::NFD int

Normalizer::FORM_KC int
Π€ΠΎΡ€ΠΌΠ° Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ KC (NFKC) β€” БовмСстимоС Ρ€Π°Π·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅, послС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ каноничСская сборка
Normalizer::NFKC int

Normalizer::FORM_KC_CF int

Normalizer::FORM_KD int
Π€ΠΎΡ€ΠΌΠ° Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ KD (NFKD) β€” БовмСстимоС Ρ€Π°Π·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅
Normalizer::NFKD int

Normalizer::NFC int

Normalizer::NFKC_CF int

Бписок измСнСний

ВСрсия ОписаниС
8.4.0 ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹ класса стали Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ.
8.0.0 ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρƒ Normalizer::NONE ΡƒΠ΄Π°Π»ΠΈΠ»ΠΈ.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

  • Normalizer::getRawDecomposition β€” Π˜Π·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ свойство Decomposition_Mapping для Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ символа UTF-8
  • Normalizer::isNormalized β€” ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, соотвСтствуСт Π»ΠΈ пСрСданная строка Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ
  • Normalizer::normalize β€” Нормализация строки
οΌ‹Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ

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

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