Класс Text
Методы обработки текста.
Краткое описание свойств
- $_defaultHtmlNoCount protected static
arrayПо умолчанию теги HTML, которые не нужно учитывать при обрезке текста.
- $_defaultTransliterator protected static
Transliterator|nullПо умолчанию транслитератор.
- $_defaultTransliteratorId protected static
stringСтрока идентификатора по умолчанию для транслитератора.
Краткое описание методов
-
_removeLastWord() protected static
Удаляет последнее слово из входного текста.
-
_strlen() protected static
Возвращает длину строки.
-
_substr() protected static
Возвращает часть строки.
-
_wordWrap() protected static
Универсальная функция для обёртывания строк с учётом Юникода.
-
ascii() public static
Преобразует десятичное значение многобайтовой строки символов в строку
-
cleanInsert() public static
Очищает строку, отформатированную с помощью Text::insert(), с учётом опций clean. По умолчанию используется метод text, но также доступен html. Цель этой функции — заменить все пробелы и нежелательные разметки вокруг заглушек, которые не были заменены Text::insert().
-
excerpt() public static
Извлекает выдержку из текста, окружающего фразу, с заданным количеством символов с каждой стороны.
-
getTransliterator() public static
Возвращает транслитератор по умолчанию.
-
getTransliteratorId() public static
Возвращает строку идентификатора по умолчанию для транслитератора.
-
highlight() public static
Выделяет заданную фразу в тексте. Вы можете указать любое выражение в highlighter, которое может включать выражение \1 для включения найденной фразы.
-
insert() public static
Заменяет заглушки переменных внутри $str на заданные значения $data. Каждый ключ в массиве $data соответствует имени заглушки переменной в $str. Пример:
Text::insert(':name is :age years old.', ['name' => 'Bob', 'age' => '65']);Возвращает: Боб 65 лет.
-
isMultibyte() public static
Проверяет, содержит ли строка многобайтовые символы.
-
parseFileSize() public static
Преобразует размер файла из удобочитаемой строки в байты.
-
setTransliterator() public static
Устанавливает транслитератор по умолчанию.
-
setTransliteratorId() public static
Устанавливает строку идентификатора по умолчанию для транслитератора.
-
slug() public static
Возвращает строку, в которой все пробелы заменены дефисами (по умолчанию), символы транслитерированы в ASCII-символы, а небуквенные символы удалены.
-
tail() public static
Обрезает текст, начиная с конца.
-
toList() public static
Создаёт список, разделённый запятыми, где последние два элемента соединены союзом "и", образуя естественный язык.
-
tokenize() public static
Разбивает строку на токены, используя $separator, игнорируя любые вхождения $separator, которые появляются между $leftBound и $rightBound.
-
transliterate() public static
Транслитерирует строку.
-
truncate() public static
Обрезает текст.
-
truncateByWidth() public static
Обрезает текст с заданной шириной.
-
utf8() public static
Преобразует многобайтовую строку символов в десятичное значение символа.
-
uuid() public static
Генерирует случайный UUID версии 4.
-
wordWrap() public static
Универсальная функция для обёртывания строк с учётом Юникода и символов перевода строки.
-
wrap() public static
Обёртывает текст до определённой ширины, при необходимости, с учётом слов.
-
wrapBlock() public static
Обёртывает весь блок текста до заданной ширины, при необходимости, с учётом слов.
Методы
_removeLastWord() protected static
_removeLastWord(string $text): string
Удаляет последнее слово из входного текста.
Параметры
-
string$text Входной текст
Возвращает
string_strlen() protected static
_strlen(string $text, array $options): int
Получение длины строки.
Параметры:
-
htmlЕсли истинно, HTML-сущности будут обработаны как декодированные символы. -
trimWidthЕсли истинно, возвращается ширина.
Параметры
-
string$text Строка, длина которой проверяется
-
array$options Массив параметров.
Возвращает
int_substr() protected static
_substr(string $text, int $start, int|null $length, array $options): string
Возвращает часть строки.
Параметры:
-
htmlЕсли истинно, HTML-сущности будут обработаны как декодированные символы. -
trimWidthЕсли истинно, будет обрезано до указанной ширины.
Параметры
-
string$text Входная строка.
-
int$start Позиция начала извлечения.
-
int|null$length Желаемая длина.
-
array$options Массив параметров.
Возвращает
string_wordWrap() protected static
_wordWrap(string $text, int $width = 72, string $break = "\n", bool $cut = false): string
Поддержка UTF-8 для wordwrap.
Параметры
-
string$text Текст для форматирования.
-
int$width optional Ширина обрезания. По умолчанию 72.
-
string$break optional Символ разрыва строки. По умолчанию '\n'.
-
bool$cut optional Если установлено в true, строка всегда будет обрезана до указанной ширины.
Возвращает
stringascii() public static
ascii(array $array): string
Преобразует десятичное значение многобайтовой строки символов в строку
Параметры
-
array$array Массив
Возвращает
stringcleanInsert() public static
cleanInsert(string $str, array $options): string
Очищает строку, отформатированную с помощью Text::insert(), с учетом заданных параметров $options, в зависимости от ключа 'clean' в $options. По умолчанию используется метод text, но также доступен html. Цель этой функции — заменить все пробелы и ненужные метки вокруг плацехолдеров, которые не были заменены Text::insert().
Параметры
-
string$str Строка для очистки.
-
array$options Список параметров.
Возвращает
stringСм. также
excerpt() public static
excerpt(string $text, string $phrase, int $radius = 100, string $ellipsis = '...'): string
Извлекает фрагмент текста, окружающий фразу, с заданным количеством символов по обе стороны, определенным радиусом.
Параметры
-
string$text Строка, в которой будет ищется фраза.
-
string$phrase Фраза, которая будет ищется.
-
int$radius optional Количество символов, возвращаемых по обе стороны найденной фразы.
-
string$ellipsis optional Прикрепляемое окончание.
Возвращает
stringСсылки
getTransliterator() public static
getTransliterator(): Transliterator|null
Получить стандартный транслитератор.
Возвращает
Transliterator|nullgetTransliteratorId() public static
getTransliteratorId(): string
Получить строку идентификатора стандартного транслитератора.
Возвращает
stringhighlight() public static
highlight(string $text, string|array $phrase, array $options = []): string
Выделяет заданную фразу в тексте. Можно указать любое выражение в highlighter, которое может включать выражение \1 для включения найденной фразы $phrase.
Параметры:
-
formatЧасть HTML, с помощью которой фраза будет выделена. -
htmlЕсли истинно, игнорируются HTML-теги, гарантируя, что выделяется только правильный текст. -
regexПользовательское правило регулярных выражений, используемое для сопоставления слов, по умолчанию '|$tag|iu' -
limitОграничение, необязательно, по умолчанию -1 (нет)
Параметры
-
string$text Текст, в котором будет производиться поиск фразы.
-
string|array$phrase Фраза или фразы, которые будут искать.
-
array$options optional Массив атрибутов HTML и параметров.
Возвращает
stringСсылки
insert() public static
insert(string $str, array $data, array $options = []): string
Заменяет переменные плацехолдеры внутри $str на любые заданные $data. Каждый ключ в массиве $data соответствует имени переменного плацехолдера в $str. Пример:
Text::insert(':name is :age years old.', ['name' => 'Bob', 'age' => '65']); Возвращает: Боб 65 лет.
Доступные $options:
- before: символ или строка перед именем переменного плацехолдера (по умолчанию
:) - after: символ или строка после имени переменного плацехолдера (по умолчанию null)
- escape: символ или строка, используемые для экранирования символа/строки перед (по умолчанию
\) - format: регулярное выражение для сопоставления переменных плацехолдеров. По умолчанию:
/(?<!\\)\:%s/(перезаписывает before, after, breaks escape / clean) - clean: булево значение или массив с инструкциями для Text::cleanInsert
Параметры
-
string$str Строка, содержащая переменные плацехолдеры
-
array$data Массив key => val, где каждый ключ обозначает имя переменной плацехолдера, которое нужно заменить на значение val
-
array$options optional Массив параметров, см. описание выше
Возвращает
stringisMultibyte() public static
isMultibyte(string $string): bool
Проверка наличия многобайтовых символов в строке
Параметры
-
string$string Значение для проверки
Возвращает
boolparseFileSize() public static
parseFileSize(string $size, mixed $default = false): mixed
Преобразование размера файла из удобочитаемой строки в байты
Параметры
-
string$size Размер в удобочитаемой строке, например '5MB', '5M', '500B', '50kb' и т.д.
-
mixed$default optional Значение, возвращаемое при использовании недопустимого размера, например 'Неизвестный тип'
Возвращает
mixedИсключения
InvalidArgumentExceptionПри недопустимом типе единицы измерения.
Ссылки
setTransliterator() public static
setTransliterator(Transliterator $transliterator): void
Установить стандартный транслитератор.
Параметры
-
Transliterator$transliterator Экземпляр
Transliterator.
Возвращает
voidsetTransliteratorId() public static
setTransliteratorId(string $transliteratorId): void
Установить строку-идентификатор по умолчанию для транслитератора.
Параметры
-
string$transliteratorId Идентификатор транслитератора.
Возвращаемое значение
voidslug() public static
slug(string $string, array|string $options = []): string
Возвращает строку, в которой все пробелы заменены дефисами (по умолчанию), символы транслитерированы в ASCII-символы, а непечатные символы удалены.
Параметры:
-
replacement: Строка замены. По умолчанию '-'. -
transliteratorId: Действительная строка-идентификатор транслитератора. Еслиnull(по умолчанию), будет использован транслитератор (идентификатор), установленный с помощьюsetTransliteratorId()илиsetTransliterator(). Еслиfalseтранслитерация не будет выполнена, будут удалены только непечатные символы. -
preserve: Конкретный непечатный символ для сохранения. По умолчаниюnull. Например, этот параметр можно установить на '.' для генерации чистых имён файлов.
Параметры
-
string$string строка, которую нужно преобразовать в slug
-
array|string$options optional Если строка, она будет использована как символ замены, или массив опций.
Возвращаемое значение
stringСм. также
setTransliteratorId()
tail() public static
tail(string $text, int $length = 100, array $options = []): string
Обрезает текст, начиная с конца.
Укорачивает строку до длины $length и заменяет первые символы многоточием, если текст длиннее длины.
Параметры:
-
ellipsisБудет использоваться в качестве начала и добавлен в перед обрезанной строкой -
exactЕсли false, $text не будет обрезан посреди слова
Параметры
-
string$text Строка для обрезки.
-
int$length optional Длина возвращаемой строки, включая многоточие.
-
array$options optional Массив опций.
Возвращаемое значение
stringtoList() public static
toList(string[] $list, string|null $and = null, string $separator = ', '): string
Создаёт список, разделённый запятыми, где две последние строки соединены со словом "и", образуя естественный язык.
Параметры
-
string[]$list Список для объединения.
-
string|null$and optional Слово, используемое для объединения последней и предпоследней строк. По умолчанию "и".
-
string$separator optional Разделитель, используемый для объединения всех остальных элементов. По умолчанию ", ".
Возвращаемое значение
stringСсылки
tokenize() public static
tokenize(string $data, string $separator = ',', string $leftBound = '(', string $rightBound = ')'): string[] Разбивает строку на токены, используя $separator, игнорируя любые вхождения $separator, которые находятся между $leftBound и $rightBound.
Параметры
-
string$data Данные для разбиения на токены.
-
string$separator optional Разделитель для разделения данных.
-
string$leftBound optional Левая граница для игнорирования разделителей в.
-
string$rightBound optional Правая граница для игнорирования разделителей в.
Возвращаемое значение
string[]transliterate() public static
transliterate(string $string, Transliterator|string|null $transliterator = null): string
Транслитерировать строку.
Параметры
-
string$string Строка для транслитерации.
-
Transliterator|string|null$transliterator optional Либо экземпляр Transliterator, либо строка-идентификатор транслитератора. Если
null, будет использован транслитератор (идентификатор) по умолчанию, установленный с помощьюsetTransliteratorId()илиsetTransliterator().
Возвращаемое значение
stringСм. также
truncate() public static
truncate(string $text, int $length = 100, array $options = []): string
Обрезает текст.
Укорачивает строку до длины $length и заменяет последние символы многоточием, если текст длиннее длины.
Параметры:
-
ellipsisБудет использоваться в качестве окончания и добавлен в конец обрезанной строки -
exactЕсли false, $text не будет обрезан посреди слова -
htmlЕсли true, теги HTML будут обработаны корректно -
trimWidthЕсли true, $text будет обрезан по ширине
Параметры
-
string$text Строка для обрезки.
-
int$length optional Длина возвращаемой строки, включая многоточие.
-
array$options optional Массив атрибутов HTML и опций.
Возвращаемое значение
stringСсылки
truncateByWidth() public static
truncateByWidth(string $text, int $length = 100, array $options = []): string
Обрезка текста по заданной ширине.
Параметры
-
string$text Строка для обрезки.
-
int$length optional Длина возвращаемой строки, включая многоточие.
-
array$options optional Массив атрибутов HTML и опций.
Возвращаемое значение
stringСм. также
utf8() public static
utf8(string $string): array
Преобразует строку с многобайтовыми символами в десятичное значение символа.
Параметры
-
string$string Строка для преобразования.
Возвращаемое значение
arrayuuid() public static
uuid(): string
Генерирует случайный UUID версии 4.
Предупреждение: Этот метод не должен использоваться в качестве генератора случайных чисел для любых криптографических операций. Вместо этого следует использовать расширения openssl или mcrypt.
Его также не следует использовать для создания идентификаторов, имеющих последствия для безопасности, таких как «неугадываемые» идентификаторы URL. Вместо этого следует использовать Security::randomBytes() для этой цели.
Возвращаемое значение
stringСм. также
wordWrap() public static
wordWrap(string $text, int $width = 72, string $break = "\n", bool $cut = false): string
Версия wordwrap, учитывающая Unicode и символы новой строки.
Параметры
-
string$text Текст для форматирования.
-
int$width optional Ширина для обрезки. По умолчанию 72.
-
string$break optional Строка разрыва. По умолчанию '\n'.
-
bool$cut optional Если cut установлено в true, строка всегда обрезается по указанной ширине.
Возвращаемое значение
stringwrap() public static
wrap(string $text, array|int $options = []): string
Обрезает текст до определённой ширины, в случае необходимости обрезает по границам слов.
Опции
-
widthШирина обрезки. По умолчанию 72. -
wordWrapОбрезать только по границам слов (пробелы). По умолчанию true. -
indentСтрока отступа. По умолчанию null. -
indentAtИндекс отступа, начиная с 0. По умолчанию 0.
Параметры
-
string$text Текст для форматирования.
-
array|int$options optional Массив опций для использования, или целое число для обрезки текста.
Возвращаемое значение
stringwrapBlock() public static
wrapBlock(string $text, array|int $options = []): string
Оборачивает весь блок текста до определённой ширины, по желанию может обрывать по словам.
Параметры
-
widthШирина обтёрта, по умолчанию 72. -
wordWrapОбрыв только по пробелам (словам), по умолчанию true. -
indentСтрока для отступа. По умолчанию null. -
indentAtИндекс отступа (0-индексация). По умолчанию 0.
Параметры
-
string$text Текст для форматирования.
-
array|int$options optional Массив параметров, или целое число для ширины обтёрта.
Возвращает
stringПодробное описание свойств
$_defaultHtmlNoCount protected static
Теги html по умолчанию, которые не должны учитываться при обрезке текста.
Тип
array$_defaultTransliterator protected static
Транслитератор по умолчанию.
Тип
Transliterator|null$_defaultTransliteratorId protected static
Строка идентификатора транслитератора по умолчанию.
Тип
string
© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/4.2/class-Cake.Utility.Text.html