Skip to main content

Работа со строками

Данный помощник реализован для работы со строками

Основы использования

use \Boot\Support\Str;
Str::camel('Hello world');

Список методов

after

Получение остатка строки после первого вхождения заданного значения.
Возвращает остаток строки либо вся строка будет, если заданного значения нет в строке

Str::after('Hello world', 'l');
#Результат
#(string)lo world

afterLast

Получение остатка строки после последнего вхождения заданного значения.
Возвращает остаток строки либо вся строка будет, если заданного значения нет в строке

Str::afterLast('Hello world', 'l');
#Результат
#(string)ld

before

Получение префикса строки до первого вхождения заданного значения.
Возвращает все до заданного значения либо всю строку, если заданного значения нет в строке

Str::before('Hello world', 'l');
#Результат
#(string)He

beforeLast

Получение префикса строки до последнего вхождения заданного значения.
Возвращает все до заданного значения либо всю строку, если заданного значения нет в строке

Str::beforeLast('Hello world', 'l');
#Результат
#(string)Hello wor

between

Получение части строки между двумя значениями.
Возвращает часть строки между двумя значениями.

Str::between('Hello world', 'l', 'r');
#Результат
#(string)lo wo

repeat

Повторяет строку указанное количество раз
Возвращает строку повторенную указанное количество раз

Str::repeat('Hello world', '2');
#Результат
#(string)Hello worldHello world

isJson

Проверка строки на JSON
Возвращает true если строка содержит JSON, иначе false.

Str::isJson('{"city":"New York", "country":"United States "}');
#Результат
#(bool)true

isLowerCase

Проверка строки на нижний регистр
Возвращает true если строка содержит только символы нижнего регистра, иначе false.

Str::isLowerCase('hello world');
#Результат
#(bool)true

isUpperCase

Проверка строки на верхний регистр
Возвращает true если строка содержит только символы верхнего регистра, иначе false.

Str::isUpperCase('HELLO WORLD');
#Результат
#(bool)true

isAlpha

Проверка строки на присутствие только буквенные символы
Возвращает true если строка содержит только буквенные символы, иначе false.

Str::isAlpha('Helloworld');
#Результат
#(bool)true

isAlphanumeric

Проверка строки на присутствие только буквенно-цифровые символы
Возвращает true если строка содержит только буквенно-цифровые символы, иначе false.

Str::isAlphanumeric('Helloworld123');
#Результат
#(bool)true

isBase64

Проверка строки на base64
Возвращает true, если строка закодирована в base64, иначе false.

Str::isBase64('0K3RgtC+INC30LDQutC+0LTQuNGA0L7QstCw0L3QvdCw0Y8g0YHRgtGA0L7QutCw');
#Результат
#(bool)true

isSerialized

Проверка строки на сериализацию
Возвращает true, если строка сериализована, иначе false.

Str::isSerialized('a:2:{s:4:"link";s:5:"color";s:5:"title";s:3:"red";}');
#Результат
#(bool)true

isHexadecimal

Проверка строки на шестнадцатеричные символы
Возвращает true, если строка содержит только шестнадцатеричные символы, иначе false.

Str::isHexadecimal('f9');
#Результат
#(bool)true

isBlank

Проверка строки на символы пробела
Возвращает true, если строка содержит только символы пробела, иначе false.

Str::isBlank(' ');
#Результат
#(bool)true

isAscii

Проверка строки на Ascii символы
Возвращает true, если строка содержит только Ascii символы, иначе false.

Str::isAscii('Hello');
#Результат
#(bool)true

hasLowerCase

Проверка строки на присутствие хотя бы одного символа нижнего регистра.
Возвращает true, если в строке содержится хотя бы один символ нижнего регистра, иначе false.

Str::isBlank(' ');
#Результат
#(bool)true

hasUpperCase

Проверка строки на присутствие хотя бы одного символа верхнего регистра.
Возвращает true, если в строке содержится хотя бы один символ верхнего регистра, иначе false.

Str::isBlank(' ');
#Результат
#(bool)true

camel

Преобразование строки по паттерну "верблюд"
Возвращает строку преобразованную по паттерну "верблюд".

Str::camel('Hello world');
#Результат
#(string)helloWorld

studly

Преобразование строки в слитную строку где каждое слово будет начинаться с заглавной буквы
Возвращает слитную строку где каждое слово будет начинаться с заглавной буквы

Str::studly('Hello world');
#Результат
#(string)HelloWorld

snake

Преобразование строки по паттерну "змейка",
Можно передать иной разделитель слов во втором аргументе
Возвращает строку преобразованную по паттерну "змейка".

Str::snake('Hello world');
#Результат
#(string)Hello_World
Str::snake('Hello world', '/');
#Результат
#(string)Hello/World

kebab

Преобразование строки по паттерну "кебаб"
Возвращает строку преобразованную по паттерну "кебаб".

Str::kebab('Hello world');
#Результат
#(string)Hello-world

words

Обрезает строку по словам на указанное значение в конце ставит указанную строку
Можно передать иную заглушку в третьем аргументе
Возвращает обрезанную строку на указанное количество слов с заглушкой в конце

Str::words('Hello world, its a wonderful day!', 2);
#Результат
#(string)Hello world...
Str::words('Hello world, its a wonderful day!', 2, '(Продолжение
следует)');
#Результат
#(string)Hello world(Продолжение следует)

limit

Обрезает строку посимвольно на указанное значение в конце ставит указанную строку
Можно передать иную заглушку в третьем аргументе
Возвращает обрезанную строку на указанное количество символов с заглушкой в конце

Str::limit('Hello world, its a wonderful day!', 2);
#Результат
#(string)He...
Str::limit('Hello world, its a wonderful day!', 2, '(Продолжение
следует)');
#Результат
#(string)He(Продолжение следует)

length

Получение длины строки
Вторым аргументом можно указать кодировку исходного текста, для более корректного подсчета
Возвращает длину указанной строки

Str::length('Hello world!');
#Результат
#(int)12

lower

Преобразует строку к нижнему регистру
Возвращает строку преобразованную к нижнему регистру

Str::lower('Hello world!');
#Результат
#(string)hello world!

upper

Преобразует строку к нижнему регистру
Возвращает строку преобразованную к нижнему регистру

Str::upper('Hello world!');
#Результат
#(string)HELLO WORLD!

ucfirst

Преобразует первый символ в верхний регистр
Возвращает строку где первый символ переведен в верхний регистр

Str::ucfirst('hello world!');
#Результат
#(string)Hello world!

lcfirst

Преобразует первый символ в нижний регистр
Возвращает строку где первый символ переведен в нижний регистр

Str::lcfirst('Hello world!');
#Результат
#(string)hello world!

substr

Обрезание строки
Третий аргумент может быть null или не передаваться вообще, тогда обрезание будет до конца строки
Возвращает часть строки, указанную параметрами start и length.

Str::substr('Hello world!', 2, 3);
#Результат
#(string)ell

numbToString

Получение суммы прописью, используется при формировании документов, преобразовывается к российским рублям и копейкам
Возвращает сумму (число) прописью

Str::numbToString(100.20);
#Результат
#(string)Сто рублей 20 (копеек)

pad

Дополняет строку до заданной длины. С указанием типа дополнения (справа (right), слева (left), по середине (both))
По умолчанию заполняет пробелами слева
Возвращает строку дополненною указанными символами до указанной длины, по указанному шаблону

Str::pad('Hello world!', 15, '.', 'left');
#Результат
#(string)...Hello world!

padRight

Дополняет строку до заданной длины справа.
Возвращает строку дополненною справа указанными символами до указанной длины

Str::padRight('Hello world!', 15, '.');
#Результат
#(string)Hello world!...

padLeft

Дополняет строку до заданной длины слева.
Возвращает строку дополненною слева указанными символами до указанной длины

Str::padLeft('Hello world!', 15, '.');
#Результат
#(string)...Hello world!

padBoth

Дополняет строку до заданной длины слева.
Возвращает строку дополненною слева указанными символами до указанной длины

Str::padBoth('Hello world!', 18, '.');
#Результат
#(string)...Hello world!...

remove

Удаляет заданное значение или массив значений из строки.
*Третьим аргументом можно указать флаг (bool) чувствительность к регистру, по умолчанию true
Возвращает строку где удалены все указанные значения.

Str::remove('world', 'Hello world!');
#Результат
#(string)Hello!

removeLeft

Удаление из строки префикса, если таковой имеется.
Возвращает строку с удаленным префиксом, если таковой имеется.

Str::removeLeft('pre', 'preHello world!');
#Результат
#(string)Hello world!

removeRight

Удаление из строки суффикса, если таковой имеется.
Возвращает строку с удаленным суффиксом, если таковой имеется.

Str::removeRight('suf', 'Hello world!suf');
#Результат
#(string)Hello world!

random

Генерация случайной строки из чисел и символов.
Возвращает строку из случайных символов указанной длины.

Str::random('10');
#Результат
#(string)df28afio10

startsWith

Метод определяет, начинается ли данная строка с заданного значения
Возвращает true если в начале строки есть указанное значение, иначе false.

Str::startsWith('Hello world', 'He');
#Результат
#(bool)true

startsWithAny

Метод определяет, начинается ли данная строка хотя бы одним из указанных в массиве значением
Возвращает true если в начале строки есть хотя бы одно из указанных в массиве значение, иначе false.

Str::startsWithAny('Hello world', ['He','wo']);
#Результат
#(bool)true

endsWith

Метод определяет, заканчивается ли данная строка указанным значением
Возвращает true если в конце строки есть указанное значение, иначе false.

Str::endsWith('Hello world', 'world');
#Результат
#(bool)true

endsWithAny

Метод определяет, заканчивается ли данная строка хотя бы одним из указанных в массиве значением
Возвращает true если в конце строки есть хотя бы одно из указанных в массиве значение, иначе false.

Str::endsWithAny('Hello world', ['world','hi']);
#Результат
#(bool)true

is

Метод определяет, соответствует ли данная строка заданному шаблону. Звездочки могут использоваться как подстановочные знаки.
Возвращает true, если строка соответствует указанному шаблону, иначе false.

Str::is('foo*', 'foobar');
#Результат
#(bool)true

substrCount

Метод определяет, сколько раз подстрока встречается в указанной строке.
Если нужно сместить или обрезать зону поиска то можно воспользоваться третьими и четвертыми не обязательными аргументами.
Возвращает количество вхождений подстроки.

Str::substrCount('Hello world!', 'l');
#Результат
#(int)3

start

Метод добавляет подстроку в начало переданной строки, если она еще не начинается с этой подстроки
Возвращает строку с префиксом.

Str::start('Hello world!', 'pre');
#Результат
#(string)preHello world!

finish

Метод добавляет подстроку в конец переданной строки, если она еще не кончается с этой подстроки
Возвращает строку с префиксом.

Str::finish('Hello world!', 'pre');
#Результат
#(string)preHello world!

ascii

Метод будет пытаться транслитерировать строку в значение ASCII
Возвращает строку приведенную к ASCII

Str::ascii('Привет');
#Результат
#(string)Privet

translite

Синоним метода Str::ascii
Возвращает строку приведенную к ASCII

Str::translite('Привет');
#Результат
#(string)Privet

at

Метод определяет, возвращает символ с указанным индексом, начинающимися с 0.
Возвращает символ с указанным индексом

Str::at('Привет', 1);
#Результат
#(string)П

chars

Метод возвращает массив, состоящий из символов в строке.
Возвращает массив, состоящий из символов в строке.

Str::chars('Привет');
#Результат
#(array)['П', 'р', 'и', 'в', 'е', 'т']

collapseWhitespace

Метод возвращает массив, состоящий из символов в строке.
Возвращает массив, состоящий из символов в строке.

Str::collapseWhitespace('Привет мир');
#Результат
#(string)Привет мир

clearSpaces

Синоним функции Str::collapseWhitespace
Возвращает массив, состоящий из символов в строке.

Str::clearSpaces('Привет мир');
#Результат
#(string)Привет мир

trim

Возвращает строку с удаленными пробелами в начале и в конце строки. Поддерживает удаление пробелов Unicode.
В качестве второго необязательного аргумента можно передать символы для удаления
Возвращает строку, с удаленными в начале и конце пробелами.

Str::trim(' Привет мир ');
#Результат
#(string)Привет мир

trimLeft

Возвращает строку с удаленными пробелами только в начале. Поддерживает удаление пробелов Unicode.
В качестве второго необязательного аргумента можно передать символы для удаления
Возвращает строку с удаленными в начале пробелами

Str::trimLeft(' Привет мир ');
#Результат
#(string)Привет мир

trimRight

Возвращает строку с удаленными пробелами только в конце. Поддерживает удаление пробелов Unicode.
В качестве второго необязательного аргумента можно передать символы для удаления
Возвращает строку с удаленными в конце пробелами

Str::trimRight(' Привет мир ');
#Результат
#(string) Привет мир

contains

Метод определяет, содержит ли данная строка заданное значение. Этот метод чувствителен к регистру.
Возвращает true если данная строка содержит значение, иначе false

Str::contains('Привет мир', 'мир');
#Результат
#(bool)true

containsAll

Метод определяет, содержит ли данная строка все заданные в массиве значения. Этот метод чувствителен к регистру.
Возвращает true если данная строка содержит значение, иначе false

Str::containsAll('Привет мир', ['мир', 'привет']);
#Результат
#(bool)true

containsAny

Метод определяет, содержит ли данная строка хотя бы одно из заданных в массиве значения. Этот метод чувствителен к регистру.
Возвращает true если данная строка содержит хотя бы одно из заданных в массиве значения, иначе false

Str::containsAny('Привет мир', ['мир', 'привет']);
#Результат
#(bool)true

first

Метод возвращает указанное количество первых символов в строке
Возвращает строку в которой указанное количество первых символов в исходной строке

Str::first('Привет мир', 3);
#Результат
#(string)При

last

Метод возвращает указанное количество последних символов в строке
Возвращает строку в которой указанное количество последних символов в исходной строке

Str::last('Привет мир', 3);
#Результат
#(string)мир

htmlDecode

Метод преобразовывает все объекты HTML в соответствующие символы. Псевдоним html_entity_decode.
Список флагов см. На http://php.net/manual/en/function.html-entity-decode.php
Возвращает строку где все объекты HTML преобразованы в соответствующие символы.

Str::htmlDecode('Привет "мир"');
#Результат
#(string)Привет "мир";

htmlEncode

Метод преобразовывает все объекты HTML в соответствующие символы. Псевдоним html_entity_decode.
Список флагов см. На http://php.net/manual/en/function.htmlentities.php
Возвращает строку где все объекты HTML преобразованы в соответствующие символы.

Str::htmlEncode('Привет "мир"');
#Результат
#(string)Привет "мир"

humanize

Метод делает первое слово строки заглавной, заменяет подчеркивание на пробелы и удаляет '_id'.
Возвращает преобразованную (очеловеченную) строку.

Str::humanize('author_id');
#Результат
#(string)Author

indexOf

Метод возвращает индекс первого вхождения в строке и false, если не найдено.
Третьим аргументом принимает необязательное смещение, с которого следует начать поиск. Отрицательный индекс ищет с конца Возвращает индекс первого вхождения в строке и false, если не найдено.

Str::indexOf('Привет мир', 'и');
#Результат
#(int)2

indexOfLast

Метод возвращает индекс последнего вхождения в строке и false, если не найдено.
Третьим аргументом принимает необязательное смещение, с которого следует начать поиск. Отрицательный индекс ищет с конца Возвращает индекс последнего вхождения в строке и false, если не найдено.

Str::indexOfLast('Привет мир', 'и');
#Результат
#(int)8

insert

Метод вставляет указанную подстроку в строку по указанному индексу.
Возвращает преобразованную строку, либо исходную если указанный индекс больше длины строки

Str::insert('Привет мир', 'любимый ', 7);
#Результат
#(string)Привет любимый мир

lines

Метод преобразует строку в массив разбивая по переносам.
Возвращает массив из разбитый строки по переносам

Str::lines('Привет 
мир');
#Результат
#(array)['Привет ', 'мир']

split

Метод разбивает строку на коллекцию [Boot\\Support\\Collection], используя регулярное выражение.
Вторым необязательным аргументом можно передать ограничение по поиску
Третьим необязательным аргументом можно передать специальный флаг См. https://www.php.net/manual/ru/function.preg-split.php
Возвращает коллекцию из разбитой по регулярному выражению строки

Str::split('one, two, three', '/[\s,]+/');
#Результат
#(Boot\Support\Collection)["one", "two", "three"]

reverse

Метод меняет порядок символов строки на обратный.
Возвращает преобразованную (перевернутую) строку.

Str::reverse('Привет мир!');
#Результат
#(string)!рим тевирп

shuffle

Метод перемешивает символы в строке.
Возвращает преобразованную (перемешенную) строку.

Str::shuffle('Привет мир!');
#Результат
#(string)! ртрПимиве

swapCase

Метод преобразовывает регистр символов в строке.
Возвращает строку где у символов изменен регистр на обратный.

Str::swapCase('Привет мир!');
#Результат
#(string)пРИВЕТ МИР!

basename

Метод возвращает последний компонент имени из указанного пути
Вторым необязательным аргументом можно передать суффикс который будет обрезан при выводе
Возвращает последний компонент имени из указанного пути

Str::basename("/etc/sudoers.d");
Str::basename("/etc/sudoers.d", 'd');
#Результат
#(string)sudoers.d
#(string)sudoers

dirname

Метод возвращает имя родительского каталога из указанного пути
Возвращает имя родительского каталога из указанного пути

Str::dirname('/foo/bar/baz', 2);
#Результат
#(string)/foo

commasReplace

Метод заменяет в строке запятые на точки
Возвращает строку где запятые заменены на точки

Str::commasReplace('Сумма: 10,478');
#Результат
#(string)Сумма: 10.478

dotsReplace

Метод заменяет в строке точки на запятые
Возвращает строку где точки заменены на запятые

Str::dotsReplace('Сумма: 10.478');
#Результат
#(string)Сумма: 10,478

slug

Метод преобразовывает строку в URL подобный вид
Вторым необязательным аргументом можно передать разделитель слов
Возвращает строку преобразованную к URL адресу

Str::slug('Привет мир');
#Результат
#(string)privet-mir

surround

Окружает исходную строку указанной подстрокой
Возвращает строку которую окружает указанная подстрока

Str::surround('Привет мир', '***');
#Результат
#(string)***Привет мир***

removeSpaces

Удаляет все пробелы в строке. Сюда входят символы табуляции и новой строки, а также многобайтовые пробелы.
Возвращает строку без пробелов

Str::removeSpaces('Привет мир');
#Результат
#(string)Приветмир

slice

Возвращает подстроку, начинающуюся с $start и до $end, не включая индекс, указанный в $end.
Если $end не указан, функция извлекает оставшуюся строку. Если $end отрицательный, то вычисляется с конца строки.
Возвращает обрезанную строку

Str::slice('Привет мир', '2', '6');
#Результат
#(string)вет

tidy

Возвращает строку с умными кавычками, символами многоточия и тире из Windows-1252 (обычно используется в документах Word), замененными их эквивалентами ASCII.
Возвращает строку с преобразованными кавычками тире и многоточиями

Str::tidy('«Понятно…»');
#Результат
#(string)"Понятно..."

longPrefix

Метод возвращает максимально длинный префикс между двумя строками
Возвращает максимально длинный префикс между двумя строками

Str::longPrefix('Привет', 'При');
#Результат
#(string)При

longSuffix

Метод возвращает максимально длинный суффикс между двумя строками
Возвращает максимально длинный суффикс между двумя строками

Str::longSuffix('Привет', 'Омлет');
#Результат
#(string)ет

longSubstring

Метод возвращает максимально длинную общую часть между двумя строками
Возвращает максимально длинную общую часть между двумя строками

Str::longSubstring('Привет мир', 'Корвет');
#Результат
#(string)вет

titleize

Метод преобразует строку где каждое слово будет начинаться с заглавной буквы.
Также принимает массив $ignore, позволяющий перечислять слова без заглавных букв.
Возвращает строку с удаленными в начале пробелами

Str::titleize('Привет мой любимый мир', 'мой');
#Результат
#(string)Привет мой Любимый Мир

replace

Метод возвращает строку где все найденные подстроки замены на указанное значение
Возвращает строку где все найденные подстроки замены на указанное значение

Str::replace('Привет мой любимый мир', 'мой', 'твой');
#Результат
#(string)Привет твой любимый мир

title

Метод преобразует заданную строку в паттерн "Title Case" (capitalize)
Возвращает преобразованную строку

Str::title('Привет мой любимый мир');
#Результат
#(string)Привет Мой Любимый Мир

switcher

Метод преобразовывает русские символы в английские и обратно, аналог Punto switcher
Вторым аргументом указывается в какую сторону необходимо выполнить преобразование (0: rus -> eng, 1: eng -> rus), по умолчанию 0: rus -> eng
Возвращает преобразованную строку

Str::switcher('Ghbdtn мир', 0);
#Результат
#(string)Привет Мир

isPhone

Проверка строки на телефон
Возвращает true, если строка содержит только телефонный номер, иначе false

Str::isPhone('79999999999');
#Результат
#(bool)true

isEmail

Проверка строки на E-mail адрес
Возвращает true, если строка содержит только только E-mail адрес, иначе false

Str::isEmail('example@test.ru');
#Результат
#(bool)true

hasEmail

Проверка строки на содержание в ней хотя бы одного E-mail адрес
Возвращает true, если в строке содержится хотя бы один E-mail адрес, иначе false.

Str::hasEmail('example@test.ru привет');
#Результат
#(bool)true

squish

Удаление всех «лишних» пробелов из исходной строки. Возвращает string, в которой удалены «лишнее» пробелы

Str::squish(' строка с  пробелами  ');
#Результат
#(string)строка с пробелами