Класс Text
Методы обработки текста.
Краткое описание свойств
- По умолчанию теги HTML, которые не должны учитываться при усечении текста.
array - По умолчанию транслитератор.
Transliterator - Строка идентификатора по умолчанию для транслитератора.
string
Краткое описание методов
- Удаляет последнее слово из входного текста.
- Получение длины строки.
- Возвращает часть строки.
- Unicode-сознательная версия wordwrap как вспомогательный метод.
-
Преобразует десятичное значение строки многобайтового символа в строку
-
Очищает строку, отформатированную Text::insert(), с заданными $options, в зависимости от ключа 'clean' в $options. По умолчанию используется метод text, но также доступен метод html. Цель этой функции — заменить все пробелы и ненужные теги вокруг заготовок, которые не были заменены Text::insert().
-
Извлекает выдержку из текста, окружающего фразу с заданным количеством символов с каждой стороны, определяемым радиусом.
- Получить транслитератор по умолчанию.
- Получить строку идентификатора транслитератора по умолчанию.
-
Выделяет заданную фразу в тексте. Вы можете указать любое выражение в выделении, которое может включать выражение \1 для включения найденной фразы $phrase.
-
Заменяет переменные заготовки внутри $str любыми заданными $data. Каждый ключ в массиве $data соответствует имени переменной заготовки в $str. Пример:
Text::insert(':name is :age years old.', ['name' => 'Bob', 'age' => '65']);Возвращает: Боб 65 лет.
- Проверка, содержит ли строка многобайтовые символы
- Преобразует размер файла из удобочитаемой строки в байты
- Установить транслитератор по умолчанию.
- Установить строку идентификатора транслитератора по умолчанию.
-
Возвращает строку, в которой все пробелы заменены дефисами (по умолчанию), символы транслитерированы в ASCII-символы, а небуквенные символы удалены.
- Удаляет из заданного текста все ссылки (<a href=....).
- Усекает текст, начиная с конца.
- Создаёт список, разделённый запятыми, где последние два элемента объединены со словом 'и', образуя естественный язык.
-
Токенизирует строку с использованием $separator, игнорируя любые вхождения $separator, которые появляются между $leftBound и $rightBound.
- Транслитерация строки.
- Усечение текста.
- Усечение текста с заданной шириной.
-
Преобразует строку многобайтового символа в десятичное значение символа
- Генерирует случайный UUID версии 4
- Unicode- и знаково-сознательная версия wordwrap.
- Обёртывание текста до определённой ширины, необязательно с обёртыванием на границах слов.
-
Обёртывание целого блока текста до определённой ширины, необязательно с обёртыванием на границах слов.
Подробное описание методов
_removeLastWord()source protected static
_removeLastWord( string $text )
Удаляет последнее слово из входного текста.
Параметры
- строка
$text - Входной текст
Возвращает
строка_strlen()source protected static
_strlen( string $text , array $options )
Получение длины строки.
Параметры:
-
htmlЕсли true, HTML-сущности будут обработаны как декодированные символы. -
trimWidthЕсли true, вернётся ширина.
Параметры
- строка
$text - Строка, длина которой проверяется
- массив
$options - Массив параметров.
Возвращает
целое число_substr()source protected static
_substr( string $text , integer $start , integer $length , array $options )
Возвращает часть строки.
Параметры:
-
htmlЕсли true, HTML-сущности будут обработаны как декодированные символы. -
trimWidthЕсли true, строка будет усечена до указанной ширины.
Параметры
- строка
$text - Входная строка.
- целое число
$start - Позиция начала извлечения.
- целое число
$length - Желаемая длина.
- массив
$options - Массив параметров.
Возвращает
строка_wordWrap()source protected static
_wordWrap( string $text , integer $width = 72 , string $break = "\n" , boolean $cut = false )
Unicode-сознательная версия wordwrap как вспомогательный метод.
Параметры
- строка
$text - Текст для форматирования.
- целое число
$widthнеобязательно 72 - Ширина обёртывания. По умолчанию 72.
- строка
$breakнеобязательно "\n" - Строка, используемая для разрыва строки. По умолчанию '\n'.
- булево
$cutнеобязательно false - Если cut=true, строка всегда обёртывается на указанную ширину.
Возвращает
строкаОтформатированный текст.
ascii()source public static
ascii( array $array )
Преобразует десятичное значение строки многобайтового символа в строку
Параметры
- массив
$array - Массив
Возвращает
строкаcleanInsert()source public static
cleanInsert( string $str , array $options )
Очищает строку, отформатированную с помощью Text::insert(), с заданными $options в зависимости от ключа 'clean' в $options. По умолчанию используется метод text, но также доступен html. Целью этой функции является замена всех пробелов и ненужной разметки вокруг заполнитель, которые не были заменены Text::insert().
Параметры
- строка
$str - Строка для очистки.
- массив
$options - Список параметров.
Возвращает
строкаСм. также
\Cake\Utility\Text::insert()excerpt()source public static
excerpt( string $text , string $phrase , integer $radius = 100 , string $ellipsis = '...' )
Извлекает фрагмент текста, окружающий фразу, с количеством символов по обе стороны, определяемым радиусом.
Параметры
- строка
$text - Строка, в которой будет осуществляться поиск фразы
- строка
$phrase - Фраза, которая будет искаться
- целое число
$radiusнеобязательно 100 - Количество символов, которое будет возвращено по обе стороны от найденной фразы
- строка
$ellipsisнеобязательно '...' - Заключительный символ, который будет добавлен
Возвращает
строкаИзмененная строка
Ссылка
https://book.cakephp.org/3.0/ru/core-libraries/text.html#extracting-an-excerptgetTransliterator()source public static
getTransliterator( )
Получить транслитератор по умолчанию.
Возвращает
Transliterator|nullЛибо экземпляр Transliterator, либо null в случае, если транслитератор еще не установлен.
С тех пор как
3.7.0getTransliteratorId()source public static
getTransliteratorId( )
Получить строку идентификатора транслитератора по умолчанию.
Возвращает
строкаИдентификатор транслитератора.
highlight()source public static
highlight( string $text , string|array $phrase , array $options = [] )
Выделяет заданную фразу в тексте. Вы можете указать любой выражение в инструменте выделения, который может включать выражение \1 для включения найденной $phrase.
Параметры:
-
formatЧасть HTML, с которой фраза будет выделена -
htmlЕсли true, игнорирует теги HTML, гарантируя, что выделяется только правильный текст -
regexПользовательское правило regex, используемое для сопоставления слов, по умолчанию — '|$tag|iu' -
limitОграничение, необязательно, по умолчанию — -1 (нет)
Параметры
- строка
$text - Текст для поиска фразы.
- строка|массив
$phrase - Фраза или фразы, которые будут искаться.
- массив
$optionsнеобязательно [] - Массив HTML атрибутов и параметров.
Возвращает
строкаВыделенный текст
Ссылка
https://book.cakephp.org/3.0/ru/core-libraries/text.html#highlighting-substringsinsert()source public static
insert( string $str , array $data , array $options = [] )
Заменяет переменные placeholders внутри $str на любые заданные $data. Каждый ключ в массиве $data соответствует имени переменной placeholder в $str. Пример:
Text::insert(':name is :age years old.', ['name' => 'Bob', 'age' => '65']); Возвращает: Боб 65 лет.
Доступные $options:
- before: Символ или строка перед именем переменной placeholder (По умолчанию
:) - after: Символ или строка после имени переменной placeholder (По умолчанию null)
- escape: Символ или строка, используемая для экранирования символа/строки before (По умолчанию
\) - format: Regex для поиска переменных placeholders. По умолчанию:
/(?<!\\)\:%s/(Перезаписывает before, after, ломает escape/clean) - clean: Булево значение или массив с инструкциями для Text::cleanInsert
Параметры
- строка
$str - Строка, содержащая переменные placeholders
- массив
$data Массив ключ => значение, где каждый ключ представляет имя переменной placeholder, которое будет заменено на значение
- массив
$optionsнеобязательно [] - Массив параметров, см. описание выше
Возвращает
строкаisMultibyte()source public static
isMultibyte( string $string )
Проверить, содержит ли строка многобайтовые символы
Параметры
- строка
$string - Значение для проверки
Возвращает
booleanparseFileSize()source public static
parseFileSize( string $size , mixed $default = false )
Преобразует размер файла из удобочитаемой строки в байты
Параметры
- строка
$size - Размер в удобочитаемой строке, например '5МБ', '5М', '500Б', '50кб' и т. д.
- смешанный
$defaultнеобязательно false - Значение, которое будет возвращено при использовании недопустимого размера, например 'Неизвестный тип'
Возвращает
смешанныйКоличество байтов в виде целого числа при успехе,
$default при ошибке, если не falseВызывает
InvalidArgumentExceptionПри недопустимом типе единицы.
Ссылка
https://book.cakephp.org/3.0/ru/core-libraries/text.html#Cake\Utility\Text::parseFileSizesetTransliterator()source public static
setTransliterator( Transliterator $transliterator )
Установить транслитератор по умолчанию.
Параметры
- Transliterator
$transliterator - Экземпляр
Transliterator.
С тех пор как
3.7.0setTransliteratorId()source public static
setTransliteratorId( string $transliteratorId )
Установить строку идентификатора транслитератора по умолчанию.
Параметры
- строка
$transliteratorId - Идентификатор транслитератора.
slug()source public static
slug( string $string , array $options = [] )
Возвращает строку, в которой все пробелы заменены дефисами (по умолчанию), символы транслитерированы в символы ASCII, а небуквенные символы удалены.
Параметры:
-
replacement: Строка замены. По умолчанию '-'. -
transliteratorId: Действительный идентификатор транслитератора. Еслиnull(по умолчанию) будет использован транслитератор (идентификатор), установленный с помощьюsetTransliteratorId()илиsetTransliterator(). Еслиfalseтранслитерация не будет выполнена, будут удалены только небуквенные символы. -
preserve: Конкретный небуквенный символ для сохранения. По умолчаниюnull. Например, этот параметр можно установить на '.' для создания чистых имён файлов.
Параметры
- строка
$string - строка, которую нужно преобразовать в slug
- массив
$optionsнеобязательно [] Если строка, она будет использоваться как символ замены, или массив параметров.
Возвращает
строкаСм. также
Cake\Utility\Text::setTransliterator()Cake\Utility\Text::setTransliteratorId()stripLinks()source public static deprecated
stripLinks( string $text )
Удаляет из заданного текста все ссылки (<a href=....).
Предупреждение Этот метод не является надёжным решением для предотвращения XSS или вредоносного HTML.
Устарело
3.2.12 Этот метод будет удалён в версии 4.0.0Параметры
- строка
$text - Текст
Возвращает
строкаТекст без ссылок
tail()source public static
tail( string $text , integer $length = 100 , array $options = [] )
Обрезает текст, начиная с конца.
Урезает строку до длины $length и заменяет первые символы многоточием, если текст длиннее длины.
Параметры:
-
ellipsisБудет использоваться в качестве начала и будет добавлено к обрезанной строке -
exactЕсли ложь, $text не будет обрезаться посреди слова
Параметры
- строка
$text - Строка для обрезки.
- целое число
$lengthoptional 100 - Длина возвращаемой строки, включая многоточие.
- массив
$optionsoptional [] - Массив параметров.
Возвращает
строкаОбрезанная строка.
toList()source public static
toList( array $list , string|null $and = null , string $separator = ', ' )
Создаёт список, разделённый запятыми, где последние два элемента объединяются через «и», образуя естественный язык.
Параметры
- массив
$list - Список для объединения.
- строка|null
$andoptional null - Слово, используемое для соединения последних двух элементов. По умолчанию равно «и».
- строка
$separatoroptional ', ' - Разделитель, используемый для соединения остальных элементов. По умолчанию равен ', '.
Возвращает
строкаОбъединённая строка.
Ссылка
https://book.cakephp.org/3.0/ru/core-libraries/text.html#converting-an-array-to-sentence-formtokenize()source public static
tokenize( string $data , string $separator = ',' , string $leftBound = '(' , string $rightBound = ')' ) Разделяет строку на токены с помощью разделителя $separator, игнорируя любой разделитель, который появляется между $leftBound и $rightBound.
Параметры
- строка
$data - Данные для разбиения на токены.
- строка
$separatoroptional ',' - Токен для разбиения данных.
- строка
$leftBoundoptional '(' - Левая граница для игнорирования разделителей.
- строка
$rightBoundoptional ')' - Правая граница для игнорирования разделителей.
Возвращает
массив|строкаМассив токенов в $data или исходный входной параметр, если он пустой.
transliterate()source public static
transliterate( string $string , Transliterator|string|null $transliterator = null )
Транслитерировать строку.
Параметры
- строка
$string - Строка для транслитерации.
- Транслитератор|строка|null
$transliteratoroptional null Либо экземпляр транслитератора, либо строка идентификатора транслитератора. Если
null, будет использоваться стандартный транслитератор (идентификатор), установленный черезsetTransliteratorId()или %%%CODE_BLOCK_101%%.
Возвращает
строкаСм.
https://secure.php.net/manual/ru/transliterator.transliterate.phptruncate()source public static
truncate( string $text , integer $length = 100 , array $options = [] )
Урезает текст.
Обрезает строку до длины $length и заменяет последние символы многоточием, если текст длиннее длины.
Параметры:
-
ellipsisБудет использоваться в качестве окончания и будет добавленно к обрезанной строке -
exactЕсли ложь, $text не будет обрезаться посреди слова -
htmlЕсли истина, теги HTML будут обработаны корректно -
trimWidthЕсли истина, $text будет обрезан по ширине
Параметры
- строка
$text - Строка для обрезки.
- целое число
$lengthoptional 100 - Длина возвращаемой строки, включая многоточие.
- массив
$optionsoptional [] - Массив атрибутов и параметров HTML.
Возвращает
строкаОбрезанная строка.
Ссылка
https://book.cakephp.org/3.0/ru/core-libraries/text.html#truncating-texttruncateByWidth()source public static
truncateByWidth( string $text , integer $length = 100 , array $options = [] )
Урезать текст с указанной шириной.
Параметры
- строка
$text - Строка для обрезки.
- целое число
$lengthoptional 100 - Длина возвращаемой строки, включая многоточие.
- массив
$optionsoptional [] - Массив атрибутов и параметров HTML.
Возвращает
строкаОбрезанная строка.
См.
\Cake\Utility\Text::truncate()utf8()source public static
utf8( string $string )
Преобразует строку многобайтных символов в десятичное значение символа
Параметры
- строка
$string - Строка для преобразования.
Возвращает
массивuuid()source public static
uuid( )
Генерирует случайный UUID версии 4
Предупреждение: Этот метод не следует использовать в качестве случайного начального значения для криптографических операций. Вместо этого следует использовать расширения openssl или mcrypt.
Его также не следует использовать для создания идентификаторов, имеющих последствия для безопасности, таких как идентификаторы URL «не угадываемые». Вместо этого вы должны использовать Security::randomBytes() для этого.
Возвращает
строкаUUID RFC 4122
См.
https://www.ietf.org/rfc/rfc4122.txtАвторские права
Matt Farina MIT License https://github.com/lootils/uuid/blob/master/LICENSEwordWrap()source public static
wordWrap( string $text , integer $width = 72 , string $break = "\n" , boolean $cut = false )
Unicode и newline-ориентированная версия wordwrap.
Параметры
- строка
$text - Текст для форматирования.
- целое число
$widthoptional 72 - Ширина для обрезки. По умолчанию 72.
- строка
$breakoptional "\n" - Строка, используемая для разрыва строки. По умолчанию равно '\n'.
- логическое
$cutoptional false - Если обрезка установлена в true, строка всегда обрезается по заданной ширине.
Возвращает
строкаОтформатированный текст.
wrap()source public static
wrap( string $text , array|integer $options = [] )
Обрезает текст до определённой ширины, необязательно обрезает по словам.
Параметры
-
widthШирина для обрезки. По умолчанию 72. -
wordWrapОбрезать только по словам (пробелам). По умолчанию true. -
indentСтрока для отступа. По умолчанию null. -
indentAtИндекс отступа, начиная с 0. По умолчанию 0.
Параметры
- строка
$text - Текст для форматирования.
- массив|целое число
$optionsoptional [] - Массив параметров или целое число для обрезки текста.
Возвращает
строкаОтформатированный текст.
wrapBlock()source public static
wrapBlock( string $text , array|integer $options = [] )
Обрезает весь блок текста до заданной ширины, необязательно обрезает по словам.
Параметры
-
widthШирина для обрезки. По умолчанию 72. -
wordWrapОбрезать только по словам (пробелам). По умолчанию true. -
indentСтрока для отступа. По умолчанию null. -
indentAtИндекс отступа, начиная с 0. По умолчанию 0.
Параметры
- строка
$text - Текст для форматирования.
- массив|целое число
$optionsoptional [] - Массив параметров или целое число для обрезки текста.
Возвращает
строкаОтформатированный текст.
Подробное описание свойств
$_defaultHtmlNoCountsource
protected static массив
По умолчанию теги HTML, которые не должны учитываться при обрезке текста.
[
'style',
'script'
] $_defaultTransliteratorIdsource
protected static string
Строка идентификатора транслитератора по умолчанию.
'Any-Latin; Latin-ASCII; [\u0080-\u7fff] remove'
© 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/3.8/class-Cake.Utility.Text.html