Класс 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 getRawDecomposition(string $string, int $form = Normalizer::FORM_C): ?string
public static isNormalized(string $string, int $form = Normalizer::FORM_C): bool
public static 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 удалили.

Содержание

Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы
To Top