Str
in package
Статические утилиты для работы со строками (UTF-8).
Суперсет строковых помощников illuminate/support, symfony/string,
nette/utils, voku/stringy и doctrine/inflector/cloudcastle/inflector:
преобразование регистра и форматов имён, поиск и срезы, дополнение, замена,
маскирование, инфлексия (множественное/единственное число), транслитерация и
слаги, генерация (случайные строки, пароли, UUID) и предикаты. Все операции
корректны для многобайтовых строк.
Table of Contents
Methods
- after() : string
- Часть строки после первого вхождения подстроки.
- afterLast() : string
- Часть строки после последнего вхождения подстроки.
- ascii() : string
- Транслитерация строки в ASCII.
- before() : string
- Часть строки до первого вхождения подстроки.
- beforeLast() : string
- Часть строки до последнего вхождения подстроки.
- between() : string
- Часть строки между первым `$from` и последним `$to`.
- betweenFirst() : string
- Часть строки между первым `$from` и первым последующим `$to`.
- camel() : string
- Преобразовать в camelCase.
- charAt() : string|null
- Символ по индексу (UTF-8); отрицательный индекс — с конца.
- contains() : bool
- Содержит ли строка хотя бы одну из подстрок.
- containsAll() : bool
- Содержит ли строка все перечисленные подстроки.
- endsWith() : bool
- Заканчивается ли строка одной из подстрок.
- finish() : string
- Гарантировать завершение строки подстрокой (без дублирования).
- headline() : string
- Заголовок из camel/snake/kebab: слова через пробел с заглавных.
- isAscii() : bool
- Состоит ли строка только из ASCII-символов.
- isJson() : bool
- Является ли строка корректным JSON.
- isUrl() : bool
- Похожа ли строка на корректный URL.
- isUuid() : bool
- Похожа ли строка на UUID (канонический формат).
- kebab() : string
- Преобразовать в kebab-case.
- lcfirst() : string
- Сделать первый символ строчным (UTF-8).
- length() : int
- Длина строки в символах (UTF-8).
- limit() : string
- Обрезать строку до длины, добавив окончание при усечении.
- lower() : string
- Привести к нижнему регистру (UTF-8).
- mask() : string
- Маскировать часть строки символом.
- padBoth() : string
- Дополнить строку с обеих сторон до заданной длины.
- padLeft() : string
- Дополнить строку слева до заданной длины.
- padRight() : string
- Дополнить строку справа до заданной длины.
- password() : string
- Сгенерировать криптостойкий пароль из выбранных наборов символов.
- plural() : string
- Множественное число слова.
- position() : int|false
- Позиция первого вхождения подстроки (UTF-8).
- random() : string
- Сгенерировать случайную алфавитно-цифровую строку.
- remove() : string
- Удалить все вхождения подстроки(строк).
- repeat() : string
- Повторить строку заданное число раз.
- replace() : string
- Заменить все вхождения подстроки или набора подстрок.
- replaceEnd() : string
- Заменить суффикс строки, если она им заканчивается.
- replaceFirst() : string
- Заменить первое вхождение подстроки.
- replaceLast() : string
- Заменить последнее вхождение подстроки.
- replaceStart() : string
- Заменить префикс строки, если она с него начинается.
- reverse() : string
- Развернуть строку задом наперёд (UTF-8).
- singular() : string
- Единственное число слова.
- slug() : string
- Преобразовать строку в URL-совместимый «слаг».
- snake() : string
- Преобразовать в snake_case.
- squish() : string
- Схлопнуть повторяющиеся пробелы и обрезать края.
- start() : string
- Гарантировать начало строки подстрокой (без дублирования).
- startsWith() : bool
- Начинается ли строка с одной из подстрок.
- studly() : string
- Преобразовать в StudlyCase (PascalCase).
- substr() : string
- Подстрока по позиции и длине (UTF-8).
- substrCount() : int
- Число непересекающихся вхождений подстроки.
- swap() : string
- Заменить подстроки по словарю замен.
- take() : string
- Первые (или, при отрицательном пределе, последние) символы строки (UTF-8).
- title() : string
- Преобразовать в Title Case (каждое слово с заглавной).
- transliterate() : string
- Транслитерация кириллицы в латиницу правилами инфлектора cloud-castle.
- ucfirst() : string
- Сделать первый символ заглавным (UTF-8).
- ucsplit() : array<int, string>
- Разбить «верблюжью» строку на части по заглавным буквам.
- upper() : string
- Привести к верхнему регистру (UTF-8).
- uuid() : string
- Сгенерировать UUID версии 4 (случайный).
- wordCount() : int
- Число слов в строке.
- words() : string
- Ограничить строку заданным числом слов.
- wordWrap() : string
- Перенести строку по словам до заданной ширины (ASCII-ориентировано).
- wrap() : string
- Обернуть строку в подстроки-обёртки.
Methods
after()
Часть строки после первого вхождения подстроки.
public
static after(string $subject, string $search) : string
Parameters
- $subject : string
-
строка-источник
- $search : string
-
искомая подстрока (пустая — вернуть исходную строку)
Return values
string —остаток после первого $search, либо вся строка, если не найдено
afterLast()
Часть строки после последнего вхождения подстроки.
public
static afterLast(string $subject, string $search) : string
Parameters
- $subject : string
-
строка-источник
- $search : string
-
искомая подстрока (пустая — вернуть исходную строку)
Return values
string —остаток после последнего $search, либо вся строка, если не найдено
ascii()
Транслитерация строки в ASCII.
public
static ascii(string $value) : string
Кириллица латинизируется правилами инфлектора cloud-castle (с автоопределением языка), латинские диакритические знаки заменяются базовыми буквами по DIACRITICS, оставшиеся не-ASCII символы отбрасываются. Детерминированно, без внешних расширений ext-iconv/intl.
Parameters
- $value : string
-
исходная строка (любой UTF-8)
Return values
string —строка только из ASCII-символов
before()
Часть строки до первого вхождения подстроки.
public
static before(string $subject, string $search) : string
Parameters
- $subject : string
-
строка-источник
- $search : string
-
искомая подстрока (пустая — вернуть исходную строку)
Return values
string —часть до первого $search, либо вся строка, если не найдено
beforeLast()
Часть строки до последнего вхождения подстроки.
public
static beforeLast(string $subject, string $search) : string
Parameters
- $subject : string
-
строка-источник
- $search : string
-
искомая подстрока (пустая — вернуть исходную строку)
Return values
string —часть до последнего $search, либо вся строка, если не найдено
between()
Часть строки между первым `$from` и последним `$to`.
public
static between(string $subject, string $from, string $to) : string
Parameters
- $subject : string
-
строка-источник
- $from : string
-
открывающая подстрока
- $to : string
-
закрывающая подстрока
Return values
string —фрагмент между границами, либо вся строка, если границы пусты
betweenFirst()
Часть строки между первым `$from` и первым последующим `$to`.
public
static betweenFirst(string $subject, string $from, string $to) : string
Parameters
- $subject : string
-
строка-источник
- $from : string
-
открывающая подстрока
- $to : string
-
закрывающая подстрока
Return values
string —фрагмент между границами, либо вся строка, если границы пусты
camel()
Преобразовать в camelCase.
public
static camel(string $value) : string
Parameters
- $value : string
-
исходная строка
Return values
string —строка в camelCase
charAt()
Символ по индексу (UTF-8); отрицательный индекс — с конца.
public
static charAt(string $value, int $index) : string|null
Parameters
- $value : string
-
исходная строка
- $index : int
-
позиция символа (может быть отрицательной)
Return values
string|null —символ либо null, если индекс вне границ
contains()
Содержит ли строка хотя бы одну из подстрок.
public
static contains(string $haystack, string|iterable<string|int, string> $needles) : bool
Parameters
- $haystack : string
-
строка-источник
- $needles : string|iterable<string|int, string>
-
искомая подстрока или их набор
Return values
bool —true, если найдена хотя бы одна непустая подстрока
containsAll()
Содержит ли строка все перечисленные подстроки.
public
static containsAll(string $haystack, iterable<string|int, string> $needles) : bool
Parameters
- $haystack : string
-
строка-источник
- $needles : iterable<string|int, string>
-
набор искомых подстрок
Return values
bool —true, если найдены все подстроки
endsWith()
Заканчивается ли строка одной из подстрок.
public
static endsWith(string $haystack, string|iterable<string|int, string> $needles) : bool
Parameters
- $haystack : string
-
строка-источник
- $needles : string|iterable<string|int, string>
-
подстрока или их набор
Return values
bool —true, если строка заканчивается одной из непустых подстрок
finish()
Гарантировать завершение строки подстрокой (без дублирования).
public
static finish(string $value, string $cap) : string
Parameters
- $value : string
-
исходная строка
- $cap : string
-
завершающая подстрока
Return values
string —строка, гарантированно оканчивающаяся на $cap
headline()
Заголовок из camel/snake/kebab: слова через пробел с заглавных.
public
static headline(string $value) : string
Parameters
- $value : string
-
исходная строка
Return values
string —человекочитаемый заголовок
isAscii()
Состоит ли строка только из ASCII-символов.
public
static isAscii(string $value) : bool
Parameters
- $value : string
-
проверяемая строка
Return values
bool —true, если строка содержит только ASCII
isJson()
Является ли строка корректным JSON.
public
static isJson(string $value) : bool
Parameters
- $value : string
-
проверяемая строка
Return values
bool —true, если строка — валидный JSON
isUrl()
Похожа ли строка на корректный URL.
public
static isUrl(string $value) : bool
Parameters
- $value : string
-
проверяемая строка
Return values
bool —true, если строка — синтаксически корректный URL
isUuid()
Похожа ли строка на UUID (канонический формат).
public
static isUuid(string $value) : bool
Parameters
- $value : string
-
проверяемая строка
Return values
bool —true, если строка соответствует формату UUID
kebab()
Преобразовать в kebab-case.
public
static kebab(string $value) : string
Parameters
- $value : string
-
исходная строка
Return values
string —строка в kebab-case
lcfirst()
Сделать первый символ строчным (UTF-8).
public
static lcfirst(string $value) : string
Parameters
- $value : string
-
исходная строка
Return values
string —строка со строчным первым символом
length()
Длина строки в символах (UTF-8).
public
static length(string $value) : int
Parameters
- $value : string
-
исходная строка
Return values
int —число символов
limit()
Обрезать строку до длины, добавив окончание при усечении.
public
static limit(string $value[, int $limit = 100 ][, string $end = '...' ]) : string
Parameters
- $value : string
-
исходная строка
- $limit : int = 100
-
максимальная длина в символах
- $end : string = '...'
-
добавляемое окончание при усечении
Return values
string —исходная строка либо усечённая с $end
lower()
Привести к нижнему регистру (UTF-8).
public
static lower(string $value) : string
Parameters
- $value : string
-
исходная строка
Return values
string —строка в нижнем регистре
mask()
Маскировать часть строки символом.
public
static mask(string $value, string $character, int $index[, int|null $length = null ]) : string
Parameters
- $value : string
-
исходная строка
- $character : string
-
символ маски (первый символ используется)
- $index : int
-
позиция начала маски (отрицательная — с конца)
- $length : int|null = null
-
длина маскируемого участка (null — до конца)
Return values
string —строка с замаскированным участком
padBoth()
Дополнить строку с обеих сторон до заданной длины.
public
static padBoth(string $value, int $length[, string $pad = ' ' ]) : string
Parameters
- $value : string
-
исходная строка
- $length : int
-
целевая длина в символах
- $pad : string = ' '
-
символ(ы)-заполнитель
Return values
string —дополненная с двух сторон строка
padLeft()
Дополнить строку слева до заданной длины.
public
static padLeft(string $value, int $length[, string $pad = ' ' ]) : string
Parameters
- $value : string
-
исходная строка
- $length : int
-
целевая длина в символах
- $pad : string = ' '
-
символ(ы)-заполнитель
Return values
string —дополненная слева строка
padRight()
Дополнить строку справа до заданной длины.
public
static padRight(string $value, int $length[, string $pad = ' ' ]) : string
Parameters
- $value : string
-
исходная строка
- $length : int
-
целевая длина в символах
- $pad : string = ' '
-
символ(ы)-заполнитель
Return values
string —дополненная справа строка
password()
Сгенерировать криптостойкий пароль из выбранных наборов символов.
public
static password([int $length = 32 ][, bool $letters = true ][, bool $numbers = true ][, bool $symbols = true ][, bool $spaces = false ]) : string
Каждый символ выбирается равномерно через random_int (без modulo-смещения).
Parameters
- $length : int = 32
-
длина пароля
- $letters : bool = true
-
включать латинские буквы обоих регистров
- $numbers : bool = true
-
включать цифры
- $symbols : bool = true
-
включать типографические символы
- $spaces : bool = false
-
включать пробел
Return values
string —сгенерированный пароль (пустой, если наборы отключены)
plural()
Множественное число слова.
public
static plural(string $value[, Language|null $language = null ]) : string
Язык определяется автоматически по самому слову (кириллица → русский, диакритика → немецкий/французский/испанский и т.д.); необязательным аргументом язык фиксируется явно.
Parameters
- $value : string
-
слово в единственном числе
- $language : Language|null = null
-
язык правил;
null— автоопределение
Return values
string —слово во множественном числе
position()
Позиция первого вхождения подстроки (UTF-8).
public
static position(string $haystack, string $needle[, int $offset = 0 ]) : int|false
Parameters
- $haystack : string
-
строка-источник
- $needle : string
-
искомая подстрока
- $offset : int = 0
-
смещение начала поиска
Return values
int|false —индекс символа либо false, если не найдено
random()
Сгенерировать случайную алфавитно-цифровую строку.
public
static random([int $length = 16 ]) : string
Parameters
- $length : int = 16
-
длина результата (неотрицательная)
Return values
string —случайная строка длины $length
remove()
Удалить все вхождения подстроки(строк).
public
static remove(string|iterable<string|int, string> $search, string $subject) : string
Parameters
- $search : string|iterable<string|int, string>
-
удаляемая подстрока или их набор
- $subject : string
-
строка-источник
Return values
string —строка без удалённых подстрок
repeat()
Повторить строку заданное число раз.
public
static repeat(string $value, int $times) : string
Parameters
- $value : string
-
исходная строка
- $times : int
-
неотрицательное число повторов
Return values
string —повторённая строка
replace()
Заменить все вхождения подстроки или набора подстрок.
public
static replace(string|array<string|int, string> $search, string|array<string|int, string> $replace, string $subject[, bool $caseSensitive = true ]) : string
Parameters
- $search : string|array<string|int, string>
-
искомое значение или их набор
- $replace : string|array<string|int, string>
-
замена или их набор (по позициям)
- $subject : string
-
строка-источник
- $caseSensitive : bool = true
-
учитывать ли регистр (по умолчанию да)
Return values
string —строка с выполненными заменами
replaceEnd()
Заменить суффикс строки, если она им заканчивается.
public
static replaceEnd(string $search, string $replace, string $subject) : string
Parameters
- $search : string
-
искомый суффикс (пустой — вернуть строку без изменений)
- $replace : string
-
замена суффикса
- $subject : string
-
строка-источник
Return values
string —строка с заменённым суффиксом либо исходная
replaceFirst()
Заменить первое вхождение подстроки.
public
static replaceFirst(string $search, string $replace, string $subject) : string
Parameters
- $search : string
-
искомая подстрока (пустая — без изменений)
- $replace : string
-
замена
- $subject : string
-
строка-источник
Return values
string —строка с заменённым первым вхождением
replaceLast()
Заменить последнее вхождение подстроки.
public
static replaceLast(string $search, string $replace, string $subject) : string
Parameters
- $search : string
-
искомая подстрока (пустая — без изменений)
- $replace : string
-
замена
- $subject : string
-
строка-источник
Return values
string —строка с заменённым последним вхождением
replaceStart()
Заменить префикс строки, если она с него начинается.
public
static replaceStart(string $search, string $replace, string $subject) : string
Parameters
- $search : string
-
искомый префикс (пустой — вернуть строку без изменений)
- $replace : string
-
замена префикса
- $subject : string
-
строка-источник
Return values
string —строка с заменённым префиксом либо исходная
reverse()
Развернуть строку задом наперёд (UTF-8).
public
static reverse(string $value) : string
Parameters
- $value : string
-
исходная строка
Return values
string —перевёрнутая строка
singular()
Единственное число слова.
public
static singular(string $value[, Language|null $language = null ]) : string
Язык определяется автоматически по самому слову; необязательным аргументом язык фиксируется явно.
Parameters
- $value : string
-
слово во множественном числе
- $language : Language|null = null
-
язык правил;
null— автоопределение
Return values
string —слово в единственном числе
slug()
Преобразовать строку в URL-совместимый «слаг».
public
static slug(string $title[, string $separator = '-' ][, Language|null $language = null ]) : string
Построено поверх инфлектора cloud-castle (транслитерация и нормализация) с предварительным сглаживанием диакритики через ascii(), поэтому результат гарантированно состоит только из ASCII-символов.
Parameters
- $title : string
-
исходный заголовок
- $separator : string = '-'
-
разделитель слов (по умолчанию «-»)
- $language : Language|null = null
-
язык транслитерации; null — автоопределение
Return values
string —слаг из строчных ASCII-букв, цифр и разделителей
snake()
Преобразовать в snake_case.
public
static snake(string $value[, string $delimiter = '_' ]) : string
Parameters
- $value : string
-
исходная строка
- $delimiter : string = '_'
-
разделитель между словами (по умолчанию
_)
Return values
string —строка в snake_case с заданным разделителем
squish()
Схлопнуть повторяющиеся пробелы и обрезать края.
public
static squish(string $value) : string
Parameters
- $value : string
-
исходная строка
Return values
string —строка без лишних пробелов
start()
Гарантировать начало строки подстрокой (без дублирования).
public
static start(string $value, string $prefix) : string
Parameters
- $value : string
-
исходная строка
- $prefix : string
-
начальная подстрока
Return values
string —строка, гарантированно начинающаяся с $prefix
startsWith()
Начинается ли строка с одной из подстрок.
public
static startsWith(string $haystack, string|iterable<string|int, string> $needles) : bool
Parameters
- $haystack : string
-
строка-источник
- $needles : string|iterable<string|int, string>
-
подстрока или их набор
Return values
bool —true, если строка начинается с одной из непустых подстрок
studly()
Преобразовать в StudlyCase (PascalCase).
public
static studly(string $value) : string
Parameters
- $value : string
-
исходная строка
Return values
string —строка в StudlyCase
substr()
Подстрока по позиции и длине (UTF-8).
public
static substr(string $value, int $start[, int|null $length = null ]) : string
Parameters
- $value : string
-
исходная строка
- $start : int
-
начальная позиция (может быть отрицательной)
- $length : int|null = null
-
длина в символах (null — до конца)
Return values
string —извлечённая подстрока
substrCount()
Число непересекающихся вхождений подстроки.
public
static substrCount(string $haystack, string $needle) : int
Parameters
- $haystack : string
-
строка-источник
- $needle : string
-
искомая подстрока (пустая — 0)
Return values
int —количество вхождений
swap()
Заменить подстроки по словарю замен.
public
static swap(array<string, string> $map, string $subject) : string
Parameters
- $map : array<string, string>
-
словарь «искомое → замена»
- $subject : string
-
строка-источник
Return values
string —строка с применёнными заменами
take()
Первые (или, при отрицательном пределе, последние) символы строки (UTF-8).
public
static take(string $value, int $limit) : string
Parameters
- $value : string
-
исходная строка
- $limit : int
-
число символов; отрицательное — с конца строки
Return values
string —срез строки
title()
Преобразовать в Title Case (каждое слово с заглавной).
public
static title(string $value) : string
Parameters
- $value : string
-
исходная строка
Return values
string —строка в Title Case
transliterate()
Транслитерация кириллицы в латиницу правилами инфлектора cloud-castle.
public
static transliterate(string $value[, Language|null $language = null ]) : string
В отличие от ascii(), сохраняет диакритику и не отбрасывает символы, заменяя лишь кириллицу латиницей.
Parameters
- $value : string
-
исходная строка
- $language : Language|null = null
-
язык правил; null — автоопределение
Return values
string —латинизированная строка
ucfirst()
Сделать первый символ заглавным (UTF-8).
public
static ucfirst(string $value) : string
Parameters
- $value : string
-
исходная строка
Return values
string —строка с заглавным первым символом
ucsplit()
Разбить «верблюжью» строку на части по заглавным буквам.
public
static ucsplit(string $value) : array<int, string>
Parameters
- $value : string
-
исходная строка
Return values
array<int, string> —части строки
upper()
Привести к верхнему регистру (UTF-8).
public
static upper(string $value) : string
Parameters
- $value : string
-
исходная строка
Return values
string —строка в верхнем регистре
uuid()
Сгенерировать UUID версии 4 (случайный).
public
static uuid() : string
Return values
string —UUID в каноническом строчном формате
wordCount()
Число слов в строке.
public
static wordCount(string $value) : int
Parameters
- $value : string
-
исходная строка
Return values
int —количество слов
words()
Ограничить строку заданным числом слов.
public
static words(string $value[, int $words = 100 ][, string $end = '...' ]) : string
Parameters
- $value : string
-
исходная строка
- $words : int = 100
-
максимальное число слов (меньше 1 — только окончание)
- $end : string = '...'
-
добавляемое окончание при усечении
Return values
string —строка не более чем из $words слов
wordWrap()
Перенести строку по словам до заданной ширины (ASCII-ориентировано).
public
static wordWrap(string $value[, int $characters = 75 ][, string $break = "\n" ][, bool $cutLongWords = false ]) : string
Parameters
- $value : string
-
исходная строка
- $characters : int = 75
-
ширина строки в символах
- $break : string = "\n"
-
символ переноса
- $cutLongWords : bool = false
-
разрывать ли слова длиннее ширины
Return values
string —строка с переносами
wrap()
Обернуть строку в подстроки-обёртки.
public
static wrap(string $value, string $before[, string|null $after = null ]) : string
Parameters
- $value : string
-
исходная строка
- $before : string
-
открывающая обёртка
- $after : string|null = null
-
закрывающая обёртка (по умолчанию равна
$before)
Return values
string —обёрнутая строка