Работа со строками
Данный помощник реализован для работы со строками
Основы использования
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)строка с пробелами