1. Глубже в детали
  2. Строки

Присоединяйся к нашему Telegram сообществу @webblend!

Здесь ты найдешь сниппеты по Laravel и полезные советы по веб-разработке.

Введение

Laravel включает в себя различные функции для манипуляции строковыми значениями. Многие из этих функций используются самим фреймворком; однако вы свободны использовать их в своих собственных приложениях, если они вам удобны.

Доступные методы

Строки

Fluent Strings

Строки

__()

Функция __ переводит заданную строку перевода или ключ перевода с использованием ваших языковых файлов:

echo __('Welcome to our application');
 
echo __('messages.welcome');

Если указанная строка перевода или ключ не существует, функция __ вернет заданное значение. Так, используя приведенный выше пример, функция __ вернет messages.welcome, если этот ключ перевода не существует.

class_basename()

Функция class_basename возвращает имя класса заданного класса с удаленным пространством имен класса:

$class = class_basename('Foo\Bar\Baz');
 
// Baz

e()

Функция e выполняет функцию htmlspecialchars PHP с опцией double_encode, по умолчанию установленной в true:

echo e('<html>foo</html>');
 
// &lt;html&gt;foo&lt;/html&gt;

preg_replace_array()

Функция preg_replace_array заменяет заданный шаблон в строке последовательно с использованием массива:

$string = 'The event will take place between :start and :end';
 
$replaced = preg_replace_array('/:[a-z_]+/', ['8:30', '9:00'], $string);
 
// The event will take place between 8:30 and 9:00

Str::after()

Метод Str::after возвращает все после заданного значения в строке. Вся строка будет возвращена, если заданное значение не существует внутри строки:

use Illuminate\Support\Str;
 
$slice = Str::after('This is my name', 'This is');
 
// ' my name'

Str::afterLast()

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

use Illuminate\Support\Str;
 
$slice = Str::afterLast('App\Http\Controllers\Controller', '\\');
 
// 'Controller'

Str::ascii()

Метод Str::ascii попытается транслитерировать строку в значение ASCII:

use Illuminate\Support\Str;
 
$slice = Str::ascii('û');
 
// 'u'

Str::before()

Метод Str::before возвращает все перед заданным значением в строке:

use Illuminate\Support\Str;
 
$slice = Str::before('This is my name', 'my name');
 
// 'This is '

Str::beforeLast()

Метод Str::beforeLast возвращает все перед последним вхождением заданного значения в строке:

use Illuminate\Support\Str;
 
$slice = Str::beforeLast('This is my name', 'is');
 
// 'This '

Str::between()

Метод Str::between возвращает часть строки между двумя значениями:

use Illuminate\Support\Str;
 
$slice = Str::between('This is my name', 'This', 'name');
 
// ' is my '

Str::betweenFirst()

Метод Str::betweenFirst возвращает наименьшую возможную часть строки между двумя значениями:

use Illuminate\Support\Str;
 
$slice = Str::betweenFirst('[a] bc [d]', '[', ']');
 
// 'a'

Str::camel()

Метод Str::camel преобразует заданную строку в camelCase:

use Illuminate\Support\Str;
 
$converted = Str::camel('foo_bar');
 
// fooBar

Str::contains()

Метод Str::contains определяет, содержит ли заданная строка заданное значение. Этот метод учитывает регистр:

use Illuminate\Support\Str;
 
$contains = Str::contains('This is my name', 'my');
 
// true

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

use Illuminate\Support\Str;
 
$contains = Str::contains('This is my name', ['my', 'foo']);
 
// true

Str::containsAll()

Метод Str::containsAll определяет, содержит ли заданная строка все значения в заданном массиве:

use Illuminate\Support\Str;
 
$containsAll = Str::containsAll('This is my name', ['my', 'name']);
 
// true

Str::endsWith()

Метод Str::endsWith определяет, заканчивается ли заданная строка заданным значением:

use Illuminate\Support\Str;
 
$result = Str::endsWith('This is my name', 'name');
 
// true

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

use Illuminate\Support\Str;
 
$result = Str::endsWith('This is my name', ['name', 'foo']);
 
// true
 
$result = Str::endsWith('This is my name', ['this', 'foo']);
 
// false

Str::excerpt()

Метод Str::excerpt извлекает отрывок из заданной строки, соответствующий первому вхождению фразы в этой строке:

use Illuminate\Support\Str;
 
$excerpt = Str::excerpt('This is my name', 'my', [
'radius' => 3
]);
 
// '...is my na...'

Параметр radius, по умолчанию установленный на 100, позволяет задать количество символов, которые должны появиться с каждой стороны усеченной строки.

Кроме того, вы можете использовать параметр omission, чтобы определить строку, которая будет предварять и следовать за усеченной строкой:

use Illuminate\Support\Str;
 
$excerpt = Str::excerpt('This is my name', 'name', [
'radius' => 3,
'omission' => '(...) '
]);
 
// '(...) my name'

Str::finish()

Метод Str::finish добавляет один экземпляр заданного значения к строке, если она еще не заканчивается этим значением:

use Illuminate\Support\Str;
 
$adjusted = Str::finish('this/string', '/');
 
// this/string/
 
$adjusted = Str::finish('this/string/', '/');
 
// this/string/

Str::headline()

Метод Str::headline преобразует строки, разделенные регистром, дефисами или подчеркиваниями, в строку с пробелами, где первая буква каждого слова заглавная:

use Illuminate\Support\Str;
 
$headline = Str::headline('steve_jobs');
 
// Steve Jobs
 
$headline = Str::headline('EmailNotificationSent');
 
// Email Notification Sent

Str::inlineMarkdown()

Метод Str::inlineMarkdown преобразует синтаксис GitHub flavored Markdown в инлайновый HTML с использованием CommonMark. Однако, в отличие от метода markdown, он не оборачивает весь сгенерированный HTML в блочный элемент:

use Illuminate\Support\Str;
 
$html = Str::inlineMarkdown('**Laravel**');
 
// <strong>Laravel</strong>

Str::is()

Метод Str::is определяет, соответствует ли заданная строка заданному шаблону. Звездочки могут использоваться в качестве подстановочных значений:

use Illuminate\Support\Str;
 
$matches = Str::is('foo*', 'foobar');
 
// true
 
$matches = Str::is('baz*', 'foobar');
 
// false

Str::isAscii()

Метод Str::isAscii определяет, является ли заданная строка 7-битным ASCII:

use Illuminate\Support\Str;
 
$isAscii = Str::isAscii('Taylor');
 
// true
 
$isAscii = Str::isAscii('ü');
 
// false

Str::isJson()

Метод Str::isJson определяет, является ли заданная строка допустимым JSON:

use Illuminate\Support\Str;
 
$result = Str::isJson('[1,2,3]');
 
// true
 
$result = Str::isJson('{"first": "John", "last": "Doe"}');
 
// true
 
$result = Str::isJson('{first: "John", last: "Doe"}');
 
// false

Str::isUrl()

Метод Str::isUrl определяет, является ли заданная строка допустимым URL:

use Illuminate\Support\Str;
 
$isUrl = Str::isUrl('http://example.com');
 
// true
 
$isUrl = Str::isUrl('laravel');
 
// false

Str::isUlid()

Метод Str::isUlid определяет, является ли заданная строка допустимым ULID:

use Illuminate\Support\Str;
 
$isUlid = Str::isUlid('01gd6r360bp37zj17nxb55yv40');
 
// true
 
$isUlid = Str::isUlid('laravel');
 
// false

Str::isUuid()

Метод Str::isUuid определяет, является ли заданная строка допустимым UUID:

use Illuminate\Support\Str;
 
$isUuid = Str::isUuid('a0a2a2d2-0b87-4a18-83f2-2529882be2de');
 
// true
 
$isUuid = Str::isUuid('laravel');
 
// false

Str::kebab()

Метод Str::kebab преобразует заданную строку в kebab-case:

use Illuminate\Support\Str;
 
$converted = Str::kebab('fooBar');
 
// foo-bar

Str::lcfirst()

Метод Str::lcfirst возвращает заданную строку с первым символом в нижнем регистре:

use Illuminate\Support\Str;
 
$string = Str::lcfirst('Foo Bar');
 
// foo Bar

Str::length()

Метод Str::length возвращает длину заданной строки:

use Illuminate\Support\Str;
 
$length = Str::length('Laravel');
 
// 7

Str::limit()

Метод Str::limit усекает заданную строку до указанной длины:

use Illuminate\Support\Str;
 
$truncated = Str::limit('The quick brown fox jumps over the lazy dog', 20);
 
// The quick brown fox...

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

use Illuminate\Support\Str;
 
$truncated = Str::limit('The quick brown fox jumps over the lazy dog', 20, ' (...)');
 
// The quick brown fox (...)

Str::lower()

Метод Str::lower преобразует заданную строку в нижний регистр:

use Illuminate\Support\Str;
 
$converted = Str::lower('LARAVEL');
 
// laravel

Str::markdown()

Метод Str::markdown преобразует синтаксис GitHub flavored Markdown в HTML с использованием CommonMark:

use Illuminate\Support\Str;
 
$html = Str::markdown('# Laravel');
 
// <h1>Laravel</h1>
 
$html = Str::markdown('# Taylor <b>Otwell</b>', [
'html_input' => 'strip',
]);
 
// <h1>Taylor Otwell</h1>

Str::mask()

Метод Str::mask маскирует часть строки повторяющимся символом и может использоваться для замещения сегментов строк, таких как адреса электронной почты и номера телефонов:

use Illuminate\Support\Str;
 
$string = Str::mask('[email protected]', '*', 3);
 
// tay***************

При необходимости вы можете указать отрицательное число в качестве третьего аргумента метода mask, что указывает методу начать маскировку на заданном расстоянии от конца строки:

$string = Str::mask('[email protected]', '*', -15, 3);
 
// tay***@example.com

Str::orderedUuid()

Метод Str::orderedUuid генерирует UUID "сначала метка времени", который можно эффективно хранить в индексированном столбце базы данных. Каждый UUID, сгенерированный с использованием этого метода, будет отсортирован после UUID, ранее сгенерированных с использованием метода:

use Illuminate\Support\Str;
 
return (string) Str::orderedUuid();

Str::padBoth()

Метод Str::padBoth оборачивает функцию str_pad PHP, добавляя с обеих сторон строки другую строку, пока конечная строка не достигнет желаемой длины:

use Illuminate\Support\Str;
 
$padded = Str::padBoth('James', 10, '_');
 
// '__James___'
 
$padded = Str::padBoth('James', 10);
 
// ' James '

Str::padLeft()

Метод Str::padLeft оборачивает функцию str_pad PHP, добавляя слева от строки другую строку, пока конечная строка не достигнет желаемой длины:

use Illuminate\Support\Str;
 
$padded = Str::padLeft('James', 10, '-=');
 
// '-=-=-James'
 
$padded = Str::padLeft('James', 10);
 
// ' James'

Str::padRight()

Метод Str::padRight оборачивает функцию str_pad PHP, добавляя справа от строки другую строку, пока конечная строка не достигнет желаемой длины:

use Illuminate\Support\Str;
 
$padded = Str::padRight('James', 10, '-');
 
// 'James-----'
 
$padded = Str::padRight('James', 10);
 
// 'James '

Str::password()

Метод Str::password может использоваться для генерации безопасного, случайного пароля заданной длины. Пароль будет состоять из комбинации букв, цифр, символов и пробелов. По умолчанию пароли имеют длину 32 символа:

use Illuminate\Support\Str;
 
$password = Str::password();
 
// 'EbJo2vE-AS:U,$%_gkrV4n,q~1xy/-_4'
 
$password = Str::password(12);
 
// 'qwuar>#V|i]N'

Str::plural()

Метод Str::plural преобразует строку с существительным во множественную форму. Эта функция поддерживает любые языки, поддерживаемые плурализатором Laravel:

use Illuminate\Support\Str;
 
$plural = Str::plural('car');
 
// cars
 
$plural = Str::plural('child');
 
// children

Вы можете указать целое число в качестве второго аргумента функции, чтобы получить форму единственного или множественного числа строки:

use Illuminate\Support\Str;
 
$plural = Str::plural('child', 2);
 
// children
 
$singular = Str::plural('child', 1);
 
// child

Str::pluralStudly()

Метод Str::pluralStudly преобразует строку существительного, оформленную в стиль стадли-капс, во множественную форму. Эта функция поддерживает любые языки, поддерживаемые плурализатором Laravel:

use Illuminate\Support\Str;
 
$plural = Str::pluralStudly('VerifiedHuman');
 
// VerifiedHumans
 
$plural = Str::pluralStudly('UserFeedback');
 
// UserFeedback

Вы можете указать целое число в качестве второго аргумента функции, чтобы получить форму единственного или множественного числа строки:

use Illuminate\Support\Str;
 
$plural = Str::pluralStudly('VerifiedHuman', 2);
 
// VerifiedHumans
 
$singular = Str::pluralStudly('VerifiedHuman', 1);
 
// VerifiedHuman

Str::position()

Метод Str::position возвращает позицию первого вхождения подстроки в строку. Если подстрока не существует в данной строке, возвращается false:

use Illuminate\Support\Str;
 
$position = Str::position('Hello, World!', 'Hello');
 
// 0
 
$position = Str::position('Hello, World!', 'W');
 
// 7

Str::random()

Метод Str::random генерирует случайную строку указанной длины. Для этой функции используется функция random_bytes PHP:

use Illuminate\Support\Str;
 
$random = Str::random(40);

Str::remove()

Метод Str::remove удаляет заданное значение или массив значений из строки:

use Illuminate\Support\Str;
 
$string = 'Peter Piper picked a peck of pickled peppers.';
 
$removed = Str::remove('e', $string);
 
// Ptr Pipr pickd a pck of pickld ppprs.

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

Str::repeat()

Метод Str::repeat повторяет заданную строку:

use Illuminate\Support\Str;
 
$string = 'a';
 
$repeat = Str::repeat($string, 5);
 
// aaaaa

Str::replace()

Метод Str::replace заменяет заданную строку внутри строки:

use Illuminate\Support\Str;
 
$string = 'Laravel 8.x';
 
$replaced = Str::replace('8.x', '9.x', $string);
 
// Laravel 9.x

Метод replace также принимает аргумент caseSensitive. По умолчанию метод replace учитывает регистр:

Str::replace('Framework', 'Laravel', caseSensitive: false);

Str::replaceArray()

Метод Str::replaceArray заменяет заданное значение в строке последовательно с использованием массива:

use Illuminate\Support\Str;
 
$string = 'The event will take place between ? and ?';
 
$replaced = Str::replaceArray('?', ['8:30', '9:00'], $string);
 
// Событие состоится с 8:30 до 9:00

Str::replaceFirst()

Метод Str::replaceFirst заменяет первое вхождение заданного значения в строке:

use Illuminate\Support\Str;
 
$replaced = Str::replaceFirst('the', 'a', 'the quick brown fox jumps over the lazy dog');
 
// быстрая коричневая лиса перепрыгивает через ленивую собаку

Str::replaceLast()

Метод Str::replaceLast заменяет последнее вхождение заданного значения в строке:

use Illuminate\Support\Str;
 
$replaced = Str::replaceLast('the', 'a', 'the quick brown fox jumps over the lazy dog');
 
// быстрая коричневая лиса перепрыгивает через ленивую собаку

Str::replaceMatches()

Метод Str::replaceMatches заменяет все части строки, соответствующие шаблону, заданным заменяющим значением:

use Illuminate\Support\Str;
 
$replaced = Str::replaceMatches(
pattern: '/[^A-Za-z0-9]++/',
replace: '',
subject: '(+1) 501-555-1000'
)
 
// '15015551000'

Метод replaceMatches также принимает замыкание, которое будет вызвано с каждой частью строки, соответствующей заданному шаблону, позволяя выполнять логику замены внутри замыкания и возвращать замененное значение:

use Illuminate\Support\Str;
 
$replaced = Str::replaceMatches('/\d/', function (array $matches) {
return '['.$matches[0].']';
}, '123');
 
// '[1][2][3]'

Str::replaceStart()

Метод Str::replaceStart заменяет первое вхождение заданного значения только в том случае, если значение находится в начале строки:

use Illuminate\Support\Str;
 
$replaced = Str::replaceStart('Hello', 'Laravel', 'Hello World');
 
// Laravel World
 
$replaced = Str::replaceStart('World', 'Laravel', 'Hello World');
 
// Hello World

Str::replaceEnd()

Метод Str::replaceEnd заменяет последнее вхождение заданного значения только в том случае, если значение находится в конце строки:

use Illuminate\Support\Str;
 
$replaced = Str::replaceEnd('World', 'Laravel', 'Hello World');
 
// Hello Laravel
 
$replaced = Str::replaceEnd('Hello', 'Laravel', 'Hello World');
 
// Hello World

Str::reverse()

Метод Str::reverse переворачивает заданную строку:

use Illuminate\Support\Str;
 
$reversed = Str::reverse('Hello World');
 
// dlroW olleH

Str::singular()

Метод Str::singular преобразует строку в ее единственную форму. Эта функция поддерживает любые языки, поддерживаемые плурализатором Laravel:

use Illuminate\Support\Str;
 
$singular = Str::singular('cars');
 
// car
 
$singular = Str::singular('children');
 
// child

Str::slug()

Метод Str::slug генерирует URL-дружественный "слаг" из заданной строки:

use Illuminate\Support\Str;
 
$slug = Str::slug('Laravel 5 Framework', '-');
 
// laravel-5-framework

Str::snake()

Метод Str::snake преобразует заданную строку в snake_case:

use Illuminate\Support\Str;
 
$converted = Str::snake('fooBar');
 
// foo_bar
 
$converted = Str::snake('fooBar', '-');
 
// foo-bar

Str::squish()

Метод Str::squish удаляет все лишние пробелы из строки, включая лишние пробелы между словами:

use Illuminate\Support\Str;
 
$string = Str::squish(' laravel framework ');
 
// laravel framework

Str::start()

Метод Str::start добавляет один экземпляр заданного значения к строке, если она еще не начинается с этого значения:

use Illuminate\Support\Str;
 
$adjusted = Str::start('this/string', '/');
 
// /this/string
 
$adjusted = Str::start('/this/string', '/');
 
// /this/string

Str::startsWith()

Метод Str::startsWith определяет, начинается ли данная строка с заданного значения:

use Illuminate\Support\Str;
 
$result = Str::startsWith('This is my name', 'This');
 
// true

Если передается массив возможных значений, метод startsWith вернет true, если строка начинается с любого из заданных значений:

$result = Str::startsWith('This is my name', ['This', 'That', 'There']);
 
// true

Str::studly()

Метод Str::studly преобразует заданную строку в StudlyCase:

use Illuminate\Support\Str;
 
$converted = Str::studly('foo_bar');
 
// FooBar

Str::substr()

Метод Str::substr возвращает часть строки, указанную параметрами start и length:

use Illuminate\Support\Str;
 
$converted = Str::substr('The Laravel Framework', 4, 7);
 
// Laravel

Str::substrCount()

Метод Str::substrCount возвращает количество вхождений заданного значения в данную строку:

use Illuminate\Support\Str;
 
$count = Str::substrCount('If you like ice cream, you will like snow cones.', 'like');
 
// 2

Str::substrReplace()

Метод Str::substrReplace заменяет текст в части строки, начиная с позиции, указанной третьим аргументом, и заменяя количество символов, указанное четвертым аргументом. Передача 0 в четвертый аргумент метода вставит строку в указанную позицию, не заменяя какие-либо существующие символы в строке:

use Illuminate\Support\Str;
 
$result = Str::substrReplace('1300', ':', 2);
// 13:
 
$result = Str::substrReplace('1300', ':', 2, 0);
// 13:00

Str::swap()

Метод Str::swap заменяет несколько значений в данной строке, используя функцию strtr в PHP:

use Illuminate\Support\Str;
 
$string = Str::swap([
'Tacos' => 'Burritos',
'great' => 'fantastic',
], 'Tacos are great!');
 
// Burritos are fantastic!

Str::take()

Метод Str::take возвращает указанное количество символов из начала строки:

use Illuminate\Support\Str;
 
$taken = Str::take('Build something amazing!', 5);
 
// Build

Str::title()

Метод Str::title преобразует заданную строку в Title Case:

use Illuminate\Support\Str;
 
$converted = Str::title('a nice title uses the correct case');
 
// A Nice Title Uses The Correct Case

Str::toHtmlString()

Метод Str::toHtmlString преобразует экземпляр строки в экземпляр Illuminate\Support\HtmlString, который может быть отображен в шаблонах Blade:

use Illuminate\Support\Str;
 
$htmlString = Str::of('Nuno Maduro')->toHtmlString();

Str::ucfirst()

Метод Str::ucfirst возвращает заданную строку с первым символом в верхнем регистре:

use Illuminate\Support\Str;
 
$string = Str::ucfirst('foo bar');
 
// Foo bar

Str::ucsplit()

Метод Str::ucsplit разделяет заданную строку на массив по символам в верхнем регистре:

use Illuminate\Support\Str;
 
$segments = Str::ucsplit('FooBar');
 
// [0 => 'Foo', 1 => 'Bar']

Str::upper()

Метод Str::upper преобразует заданную строку в верхний регистр:

use Illuminate\Support\Str;
 
$string = Str::upper('laravel');
 
// LARAVEL

Str::ulid()

Метод Str::ulid генерирует ULID, компактный уникальный идентификатор, упорядоченный по времени:

use Illuminate\Support\Str;
 
return (string) Str::ulid();
 
// 01gd6r360bp37zj17nxb55yv40

Если вы хотите получить экземпляр даты Illuminate\Support\Carbon, представляющий дату и время создания заданного ULID, вы можете использовать метод createFromId, предоставленный интеграцией Carbon в Laravel:

use Illuminate\Support\Carbon;
use Illuminate\Support\Str;
 
$date = Carbon::createFromId((string) Str::ulid());

Str::uuid()

Метод Str::uuid генерирует UUID (версия 4):

use Illuminate\Support\Str;
 
return (string) Str::uuid();

Str::wordCount()

Метод Str::wordCount возвращает количество слов в строке:

use Illuminate\Support\Str;
 
Str::wordCount('Hello, world!'); // 2

Str::wordWrap()

Метод Str::wordWrap оборачивает строку до заданного количества символов:

use Illuminate\Support\Str;
 
$text = "The quick brown fox jumped over the lazy dog."
 
Str::wordWrap($text, characters: 20, break: "<br />\n");
 
/*
The quick brown fox<br />
jumped over the lazy<br />
dog.
*/

Str::words()

Метод Str::words ограничивает количество слов в строке. Дополнительная строка может быть передана этому методу через его третий аргумент для указания строки, которая должна быть добавлена в конец усеченной строки:

use Illuminate\Support\Str;
 
return Str::words('Perfectly balanced, as all things should be.', 3, ' >>>');
 
// Perfectly balanced, as >>>

Str::wrap()

Метод Str::wrap оборачивает заданную строку с дополнительной строкой или парой строк:

use Illuminate\Support\Str;
 
Str::wrap('Laravel', '"');
 
// "Laravel"
 
Str::wrap('is', before: 'This ', after: ' Laravel!');
 
// This is Laravel!

str()

Функция str возвращает новый экземпляр Illuminate\Support\Stringable заданной строки. Эта функция эквивалентна методу Str::of:

$string = str('Taylor')->append(' Otwell');
 
// 'Taylor Otwell'

Если аргумент не передан функции str, функция вернет экземпляр Illuminate\Support\Str:

$snake = str()->snake('FooBar');
 
// 'foo_bar'

trans()

Функция trans переводит заданный ключ перевода, используя ваши языковые файлы:

echo trans('messages.welcome');

Если указанный ключ перевода не существует, функция trans вернет заданный ключ. Таким образом, используя приведенный выше пример, функция trans вернет messages.welcome, если ключ перевода не существует.

trans_choice()

Функция trans_choice переводит заданный ключ перевода с учетом склонения:

echo trans_choice('messages.notifications', $unreadCount);

Если указанный ключ перевода не существует, функция trans_choice вернет заданный ключ. Таким образом, используя приведенный выше пример, функция trans_choice вернет messages.notifications, если ключ перевода не существует.

Fluent Strings

Fluent strings предоставляют более свободный, объектно-ориентированный интерфейс для работы со строковыми значениями, позволяя вам объединять несколько операций со строками, используя более читаемый синтаксис по сравнению с традиционными операциями со строками.

after

Метод after возвращает все после заданного значения в строке. Вся строка будет возвращена, если значение не существует внутри строки:

use Illuminate\Support\Str;
 
$slice = Str::of('This is my name')->after('This is');
 
// ' my name'

afterLast

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

use Illuminate\Support\Str;
 
$slice = Str::of('App\Http\Controllers\Controller')->afterLast('\\');
 
// 'Controller'

append

Метод append добавляет заданные значения к строке:

use Illuminate\Support\Str;
 
$string = Str::of('Taylor')->append(' Otwell');
 
// 'Taylor Otwell'

ascii

Метод ascii попытается транслитерировать строку в ASCII-значение:

use Illuminate\Support\Str;
 
$string = Str::of('ü')->ascii();
 
// 'u'

basename

Метод basename вернет последний компонент имени из заданной строки:

use Illuminate\Support\Str;
 
$string = Str::of('/foo/bar/baz')->basename();
 
// 'baz'

При необходимости можно указать "расширение", которое будет удалено из конечного компонента:

use Illuminate\Support\Str;
 
$string = Str::of('/foo/bar/baz.jpg')->basename('.jpg');
 
// 'baz'

before

Метод before возвращает все до заданного значения в строке:

use Illuminate\Support\Str;
 
$slice = Str::of('This is my name')->before('my name');
 
// 'This is '

beforeLast

Метод beforeLast возвращает все до последнего вхождения заданного значения в строке:

use Illuminate\Support\Str;
 
$slice = Str::of('This is my name')->beforeLast('is');
 
// 'This '

between

Метод between возвращает часть строки между двумя значениями:

use Illuminate\Support\Str;
 
$converted = Str::of('This is my name')->between('This', 'name');
 
// ' is my '

betweenFirst

Метод betweenFirst возвращает наименьшую возможную часть строки между двумя значениями:

use Illuminate\Support\Str;
 
$converted = Str::of('[a] bc [d]')->betweenFirst('[', ']');
 
// 'a'

camel

Метод camel преобразует заданную строку в camelCase:

use Illuminate\Support\Str;
 
$converted = Str::of('foo_bar')->camel();
 
// fooBar

classBasename

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

use Illuminate\Support\Str;
 
$class = Str::of('Foo\Bar\Baz')->classBasename();
 
// Baz

contains

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

use Illuminate\Support\Str;
 
$contains = Str::of('This is my name')->contains('my');
 
// true

Также можно передать массив значений для определения, содержит ли заданная строка хотя бы одно из значений в массиве:

use Illuminate\Support\Str;
 
$contains = Str::of('This is my name')->contains(['my', 'foo']);
 
// true

containsAll

Метод containsAll определяет, содержит ли заданная строка все значения в заданном массиве:

use Illuminate\Support\Str;
 
$containsAll = Str::of('This is my name')->containsAll(['my', 'name']);
 
// true

dirname

Метод dirname возвращает родительский каталог заданной строки:

use Illuminate\Support\Str;
 
$string = Str::of('/foo/bar/baz')->dirname();
 
// '/foo/bar'

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

use Illuminate\Support\Str;
 
$string = Str::of('/foo/bar/baz')->dirname(2);
 
// '/foo'

excerpt

Метод excerpt извлекает отрывок из строки, соответствующий первому вхождению фразы в этой строке:

use Illuminate\Support\Str;
 
$excerpt = Str::of('This is my name')->excerpt('my', [
'radius' => 3
]);
 
// '...is my na...'

Опция radius, которая по умолчанию равна 100, позволяет определить количество символов, которые должны появиться с каждой стороны усеченной строки.

Кроме того, вы можете использовать опцию omission для изменения строки, которая будет добавлена перед и после усеченной строки:

use Illuminate\Support\Str;
 
$excerpt = Str::of('This is my name')->excerpt('name', [
'radius' => 3,
'omission' => '(...) '
]);
 
// '(...) my name'

endsWith

Метод endsWith определяет, заканчивается ли заданная строка заданным значением:

use Illuminate\Support\Str;
 
$result = Str::of('This is my name')->endsWith('name');
 
// true

Также можно передать массив значений для определения, заканчивается ли заданная строка хотя бы одним из значений в массиве:

use Illuminate\Support\Str;
 
$result = Str::of('This is my name')->endsWith(['name', 'foo']);
 
// true
 
$result = Str::of('This is my name')->endsWith(['this', 'foo']);
 
// false

exactly

Метод exactly определяет, является ли заданная строка точным соответствием другой строки:

use Illuminate\Support\Str;
 
$result = Str::of('Laravel')->exactly('Laravel');
 
// true

explode

Метод explode разбивает строку по заданному разделителю и возвращает коллекцию, содержащую каждый раздел разделенной строки:

use Illuminate\Support\Str;
 
$collection = Str::of('foo bar baz')->explode(' ');
 
// collect(['foo', 'bar', 'baz'])

finish

Метод finish добавляет один экземпляр заданного значения к строке, если она еще не заканчивается этим значением:

use Illuminate\Support\Str;
 
$adjusted = Str::of('this/string')->finish('/');
 
// this/string/
 
$adjusted = Str::of('this/string/')->finish('/');
 
// this/string/

headline

Метод headline преобразует строки, разделенные регистром, дефисами или подчеркиваниями, в строку с пробелами, в которой каждая первая буква слова написана заглавной:

use Illuminate\Support\Str;
 
$headline = Str::of('taylor_otwell')->headline();
 
// Taylor Otwell
 
$headline = Str::of('EmailNotificationSent')->headline();
 
// Отправлено уведомление по электронной почте

inlineMarkdown

Метод inlineMarkdown преобразует Markdown в стиле GitHub в встроенный HTML с использованием CommonMark. Однако в отличие от метода markdown, он не оборачивает весь сгенерированный HTML в блочный элемент:

use Illuminate\Support\Str;
 
$html = Str::of('**Laravel**')->inlineMarkdown();
 
// <strong>Laravel</strong>

is

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

use Illuminate\Support\Str;
 
$matches = Str::of('foobar')->is('foo*');
 
// true
 
$matches = Str::of('foobar')->is('baz*');
 
// false

isAscii

Метод isAscii определяет, является ли заданная строка строкой ASCII:

use Illuminate\Support\Str;
 
$result = Str::of('Taylor')->isAscii();
 
// true
 
$result = Str::of('ü')->isAscii();
 
// false

isEmpty

Метод isEmpty определяет, является ли заданная строка пустой:

use Illuminate\Support\Str;
 
$result = Str::of(' ')->trim()->isEmpty();
 
// true
 
$result = Str::of('Laravel')->trim()->isEmpty();
 
// false

isNotEmpty

Метод isNotEmpty определяет, является ли заданная строка не пустой:

use Illuminate\Support\Str;
 
$result = Str::of(' ')->trim()->isNotEmpty();
 
// false
 
$result = Str::of('Laravel')->trim()->isNotEmpty();
 
// true

isJson

Метод isJson определяет, является ли заданная строка допустимым JSON:

use Illuminate\Support\Str;
 
$result = Str::of('[1,2,3]')->isJson();
 
// true
 
$result = Str::of('{"first": "John", "last": "Doe"}')->isJson();
 
// true
 
$result = Str::of('{first: "John", last: "Doe"}')->isJson();
 
// false

isUlid

Метод isUlid определяет, является ли заданная строка ULID:

use Illuminate\Support\Str;
 
$result = Str::of('01gd6r360bp37zj17nxb55yv40')->isUlid();
 
// true
 
$result = Str::of('Taylor')->isUlid();
 
// false

isUrl

Метод isUrl определяет, является ли заданная строка URL:

use Illuminate\Support\Str;
 
$result = Str::of('http://example.com')->isUrl();
 
// true
 
$result = Str::of('Taylor')->isUrl();
 
// false

isUuid

Метод isUuid определяет, является ли заданная строка UUID:

use Illuminate\Support\Str;
 
$result = Str::of('5ace9ab9-e9cf-4ec6-a19d-5881212a452c')->isUuid();
 
// true
 
$result = Str::of('Taylor')->isUuid();
 
// false

kebab

Метод kebab преобразует заданную строку в kebab-case:

use Illuminate\Support\Str;
 
$converted = Str::of('fooBar')->kebab();
 
// foo-bar

lcfirst

Метод lcfirst возвращает заданную строку с первым символом в нижнем регистре:

use Illuminate\Support\Str;
 
$string = Str::of('Foo Bar')->lcfirst();
 
// foo Bar

length

Метод length возвращает длину заданной строки:

use Illuminate\Support\Str;
 
$length = Str::of('Laravel')->length();
 
// 7

limit

Метод limit обрезает заданную строку до указанной длины:

use Illuminate\Support\Str;
 
$truncated = Str::of('The quick brown fox jumps over the lazy dog')->limit(20);
 
// The quick brown fox...

Также можно передать второй аргумент для изменения строки, которая будет добавлена в конец усеченной строки:

use Illuminate\Support\Str;
 
$truncated = Str::of('The quick brown fox jumps over the lazy dog')->limit(20, ' (...)');
 
// The quick brown fox (...)

lower

Метод lower преобразует заданную строку в нижний регистр:

use Illuminate\Support\Str;
 
$result = Str::of('LARAVEL')->lower();
 
// 'laravel'

ltrim

Метод ltrim обрезает левую сторону строки:

use Illuminate\Support\Str;
 
$string = Str::of(' Laravel ')->ltrim();
 
// 'Laravel '
 
$string = Str::of('/Laravel/')->ltrim('/');
 
// 'Laravel/'

markdown

Метод markdown преобразует Markdown в стиле GitHub в HTML:

use Illuminate\Support\Str;
 
$html = Str::of('# Laravel')->markdown();
 
// <h1>Laravel</h1>
 
$html = Str::of('# Taylor <b>Otwell</b>')->markdown([
'html_input' => 'strip',
]);
 
// <h1>Taylor Otwell</h1>

mask

Метод mask маскирует часть строки повторяющимся символом и может использоваться для замедления сегментов строк, таких как адреса электронной почты и номера телефонов:

use Illuminate\Support\Str;
 
$string = Str::of('[email protected]')->mask('*', 3);
 
// tay***************

При необходимости можно указать отрицательные числа в качестве третьего или четвертого аргумента метода mask, которые указывают методу начать маскировку с заданного расстояния от конца строки:

$string = Str::of('[email protected]')->mask('*', -15, 3);
 
// tay***@example.com
 
$string = Str::of('[email protected]')->mask('*', 4, -4);
 
// tayl**********.com

match

Метод match вернет часть строки, соответствующую заданному шаблону регулярного выражения:

use Illuminate\Support\Str;
 
$result = Str::of('foo bar')->match('/bar/');
 
// 'bar'
 
$result = Str::of('foo bar')->match('/foo (.*)/');
 
// 'bar'

matchAll

Метод matchAll вернет коллекцию, содержащую части строки, соответствующие заданному шаблону регулярного выражения:

use Illuminate\Support\Str;
 
$result = Str::of('bar foo bar')->matchAll('/bar/');
 
// collect(['bar', 'bar'])

Если вы указываете совпадающую группу внутри выражения, Laravel вернет коллекцию совпадений этой группы:

use Illuminate\Support\Str;
 
$result = Str::of('bar fun bar fly')->matchAll('/f(\w*)/');
 
// collect(['un', 'ly']);

Если совпадений не найдено, будет возвращена пустая коллекция.

isMatch

Метод isMatch вернет true, если строка соответствует заданному регулярному выражению:

use Illuminate\Support\Str;
 
$result = Str::of('foo bar')->isMatch('/foo (.*)/');
 
// true
 
$result = Str::of('laravel')->isMatch('/foo (.*)/');
 
// false

newLine

Метод newLine добавляет символ "конец строки" к строке:

use Illuminate\Support\Str;
 
$padded = Str::of('Laravel')->newLine()->append('Framework');
 
// 'Laravel
// Framework'

padBoth

Метод padBoth обертывает функцию str_pad PHP, заполняя обе стороны строки другой строкой до достижения желаемой длины:

use Illuminate\Support\Str;
 
$padded = Str::of('James')->padBoth(10, '_');
 
// '__James___'
 
$padded = Str::of('James')->padBoth(10);
 
// ' James '

padLeft

Метод padLeft обертывает функцию str_pad PHP, заполняя левую сторону строки другой строкой до достижения желаемой длины:

use Illuminate\Support\Str;
 
$padded = Str::of('James')->padLeft(10, '-=');
 
// '-=-=-James'
 
$padded = Str::of('James')->padLeft(10);
 
// ' James'

padRight

Метод padRight обертывает функцию str_pad PHP, заполняя правую сторону строки другой строкой до достижения желаемой длины:

use Illuminate\Support\Str;
 
$padded = Str::of('James')->padRight(10, '-');
 
// 'James-----'
 
$padded = Str::of('James')->padRight(10);
 
// 'James '

pipe

Метод pipe позволяет вам трансформировать строку, передавая её текущее значение заданной обратной вызовке:

use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
 
$hash = Str::of('Laravel')->pipe('md5')->prepend('Checksum: ');
 
// 'Checksum: a5c95b86291ea299fcbe64458ed12702'
 
$closure = Str::of('foo')->pipe(function (Stringable $str) {
return 'bar';
});
 
// 'bar'

plural

Метод plural преобразует строку с единственным словом в её форму множественного числа. Эта функция поддерживает любой из языков, поддерживаемых множителем Laravel:

use Illuminate\Support\Str;
 
$plural = Str::of('car')->plural();
 
// cars
 
$plural = Str::of('child')->plural();
 
// children

Вы можете передать целое число в качестве второго аргумента функции, чтобы получить форму единственного или множественного числа строки:

use Illuminate\Support\Str;
 
$plural = Str::of('child')->plural(2);
 
// children
 
$plural = Str::of('child')->plural(1);
 
// child

position

Метод position возвращает позицию первого вхождения подстроки в строке. Если подстрока не существует внутри строки, возвращается false:

use Illuminate\Support\Str;
 
$position = Str::of('Hello, World!')->position('Hello');
 
// 0
 
$position = Str::of('Hello, World!')->position('W');
 
// 7

prepend

Метод prepend добавляет заданные значения в начало строки:

use Illuminate\Support\Str;
 
$string = Str::of('Framework')->prepend('Laravel ');
 
// Laravel Framework

remove

Метод remove удаляет заданное значение или массив значений из строки:

use Illuminate\Support\Str;
 
$string = Str::of('Arkansas is quite beautiful!')->remove('quite');
 
// Arkansas is beautiful!

Также можно передать false в качестве второго параметра, чтобы игнорировать регистр при удалении строк.

repeat

Метод repeat повторяет заданную строку:

use Illuminate\Support\Str;
 
$repeated = Str::of('a')->repeat(5);
 
// aaaaa

replace

Метод replace заменяет заданную строку внутри строки:

use Illuminate\Support\Str;
 
$replaced = Str::of('Laravel 6.x')->replace('6.x', '7.x');
 
// Laravel 7.x

Метод replace также принимает аргумент caseSensitive. По умолчанию метод replace чувствителен к регистру:

$replaced = Str::of('macOS 13.x')->replace(
'macOS', 'iOS', caseSensitive: false
);

replaceArray

Метод replaceArray заменяет заданное значение в строке последовательно с использованием массива:

use Illuminate\Support\Str;
 
$string = 'The event will take place between ? and ?';
 
$replaced = Str::of($string)->replaceArray('?', ['8:30', '9:00']);
 
// Уведомление по электронной почте отправлено

replaceFirst

Метод replaceFirst заменяет первое вхождение заданного значения в строке:

use Illuminate\Support\Str;
 
$replaced = Str::of('the quick brown fox jumps over the lazy dog')->replaceFirst('the', 'a');
 
// быстрая коричневая лиса перепрыгивает через ленивую собаку

replaceLast

Метод replaceLast заменяет последнее вхождение заданного значения в строке:

use Illuminate\Support\Str;
 
$replaced = Str::of('the quick brown fox jumps over the lazy dog')->replaceLast('the', 'a');
 
// быстрая коричневая лиса перепрыгивает через ленивую собаку

replaceMatches

Метод replaceMatches заменяет все части строки, соответствующие шаблону, заданным строковым заменителем:

use Illuminate\Support\Str;
 
$replaced = Str::of('(+1) 501-555-1000')->replaceMatches('/[^A-Za-z0-9]++/', '')
 
// '15015551000'

Метод replaceMatches также принимает замыкание, которое будет вызвано для каждой части строки, соответствующей заданному шаблону, позволяя выполнить логику замены внутри замыкания и вернуть замененное значение:

use Illuminate\Support\Str;
 
$replaced = Str::of('123')->replaceMatches('/\d/', function (array $matches) {
return '['.$matches[0].']';
});
 
// '[1][2][3]'

replaceStart

Метод replaceStart заменяет первое вхождение заданного значения только в том случае, если значение появляется в начале строки:

use Illuminate\Support\Str;
 
$replaced = Str::of('Hello World')->replaceStart('Hello', 'Laravel');
 
// Laravel World
 
$replaced = Str::of('Hello World')->replaceStart('World', 'Laravel');
 
// Hello World

replaceEnd

Метод replaceEnd заменяет последнее вхождение заданного значения только в том случае, если значение появляется в конце строки:

use Illuminate\Support\Str;
 
$replaced = Str::of('Hello World')->replaceEnd('World', 'Laravel');
 
// Hello Laravel
 
$replaced = Str::of('Hello World')->replaceEnd('Hello', 'Laravel');
 
// Hello World

rtrim

Метод rtrim обрезает правую сторону заданной строки:

use Illuminate\Support\Str;
 
$string = Str::of(' Laravel ')->rtrim();
 
// ' Laravel'
 
$string = Str::of('/Laravel/')->rtrim('/');
 
// '/Laravel'

scan

Метод scan анализирует ввод из строки в коллекцию в соответствии с форматом, поддерживаемым функцией sscanf PHP:

use Illuminate\Support\Str;
 
$collection = Str::of('filename.jpg')->scan('%[^.].%s');
 
// collect(['filename', 'jpg'])

singular

Метод singular преобразует строку в её форму единственного числа. Эта функция поддерживает любой из языков, поддерживаемых множителем Laravel:

use Illuminate\Support\Str;
 
$singular = Str::of('cars')->singular();
 
// car
 
$singular = Str::of('children')->singular();
 
// child

slug

Метод slug генерирует дружественный URL "slug" из заданной строки:

use Illuminate\Support\Str;
 
$slug = Str::of('Laravel Framework')->slug('-');
 
// laravel-framework

snake

Метод snake преобразует заданную строку в snake_case:

use Illuminate\Support\Str;
 
$converted = Str::of('fooBar')->snake();
 
// foo_bar

split

Метод split разделяет строку на коллекцию с использованием регулярного выражения:

use Illuminate\Support\Str;
 
$segments = Str::of('one, two, three')->split('/[\s,]+/');
 
// collect(["one", "two", "three"])

squish

Метод squish удаляет всю лишнюю белую область из строки, включая лишнюю белую область между словами:

use Illuminate\Support\Str;
 
$string = Str::of(' laravel framework ')->squish();
 
// laravel framework

start

Метод start добавляет один экземпляр заданного значения к строке, если она еще не начинается с этого значения:

use Illuminate\Support\Str;
 
$adjusted = Str::of('this/string')->start('/');
 
// /this/string
 
$adjusted = Str::of('/this/string')->start('/');
 
// /this/string

startsWith

Метод startsWith определяет, начинается ли заданная строка с заданного значения:

use Illuminate\Support\Str;
 
$result = Str::of('This is my name')->startsWith('This');
 
// true

studly

Метод studly преобразует заданную строку в StudlyCase:

use Illuminate\Support\Str;
 
$converted = Str::of('foo_bar')->studly();
 
// FooBar

substr

Метод substr возвращает часть строки, указанную параметрами начала и длины:

use Illuminate\Support\Str;
 
$string = Str::of('Laravel Framework')->substr(8);
 
// Framework
 
$string = Str::of('Laravel Framework')->substr(8, 5);
 
// Frame

substrReplace

Метод substrReplace заменяет текст в части строки, начиная с позиции, указанной вторым аргументом, и заменяя количество символов, указанное третьим аргументом. Передача 0 в третий аргумент метода вставит строку в указанную позицию, не заменяя при этом какие-либо существующие символы в строке:

use Illuminate\Support\Str;
 
$string = Str::of('1300')->substrReplace(':', 2);
 
// 13:
 
$string = Str::of('The Framework')->substrReplace(' Laravel', 3, 0);
 
// The Laravel Framework

swap

Метод swap заменяет несколько значений в строке, используя функцию strtr PHP:

use Illuminate\Support\Str;
 
$string = Str::of('Tacos are great!')
->swap([
'Tacos' => 'Burritos',
'great' => 'fantastic',
]);
 
// Burritos are fantastic!

take

Метод take возвращает указанное количество символов с начала строки:

use Illuminate\Support\Str;
 
$taken = Str::of('Build something amazing!')->take(5);
 
// Build

tap

Метод tap передает строку заданному замыканию, позволяя вам исследовать и взаимодействовать со строкой, не влияя на саму строку. Исходная строка возвращается методом tap, независимо от того, что возвращает замыкание:

use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
 
$string = Str::of('Laravel')
->append(' Framework')
->tap(function (Stringable $string) {
dump('String after append: '.$string);
})
->upper();
 
// LARAVEL FRAMEWORK

test

Метод test определяет, соответствует ли строка заданному шаблону регулярного выражения:

use Illuminate\Support\Str;
 
$result = Str::of('Laravel Framework')->test('/Laravel/');
 
// true

title

Метод title преобразует заданную строку в Title Case:

use Illuminate\Support\Str;
 
$converted = Str::of('a nice title uses the correct case')->title();
 
// A Nice Title Uses The Correct Case

trim

Метод trim обрезает заданную строку:

use Illuminate\Support\Str;
 
$string = Str::of(' Laravel ')->trim();
 
// 'Laravel'
 
$string = Str::of('/Laravel/')->trim('/');
 
// 'Laravel'

ucfirst

Метод ucfirst возвращает заданную строку с первым символом в верхнем регистре:

use Illuminate\Support\Str;
 
$string = Str::of('foo bar')->ucfirst();
 
// Foo bar

ucsplit

Метод ucsplit разбивает заданную строку на коллекцию по символам верхнего регистра:

use Illuminate\Support\Str;
 
$string = Str::of('Foo Bar')->ucsplit();
 
// collect(['Foo', 'Bar'])

upper

Метод upper преобразует заданную строку в верхний регистр:

use Illuminate\Support\Str;
 
$adjusted = Str::of('laravel')->upper();
 
// LARAVEL

when

Метод when вызывает заданное замыкание, если заданное условие истинно. Замыкание получает экземпляр текучей строки:

use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
 
$string = Str::of('Taylor')
->when(true, function (Stringable $string) {
return $string->append(' Otwell');
});
 
// 'Taylor Otwell'

При необходимости вы можете передать другое замыкание в качестве третьего параметра метода when. Это замыкание будет выполнено, если параметр условия оценивается как false.

whenContains

Метод whenContains вызывает заданное замыкание, если строка содержит заданное значение. Замыкание получает экземпляр текучей строки:

use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
 
$string = Str::of('tony stark')
->whenContains('tony', function (Stringable $string) {
return $string->title();
});
 
// 'Tony Stark'

При необходимости вы можете передать другое замыкание в качестве третьего параметра метода when. Это замыкание будет выполнено, если строка не содержит заданное значение.

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

use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
 
$string = Str::of('tony stark')
->whenContains(['tony', 'hulk'], function (Stringable $string) {
return $string->title();
});
 
// Tony Stark

whenContainsAll

Метод whenContainsAll вызывает заданное замыкание, если строка содержит все заданные подстроки. Замыкание получает экземпляр текучей строки:

use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
 
$string = Str::of('tony stark')
->whenContainsAll(['tony', 'stark'], function (Stringable $string) {
return $string->title();
});
 
// 'Tony Stark'

При необходимости вы можете передать другое замыкание в качестве третьего параметра метода when. Это замыкание будет выполнено, если параметр условия оценивается как false.

whenEmpty

Метод whenEmpty вызывает заданное замыкание, если строка пуста. Если замыкание возвращает значение, это значение также будет возвращено методом whenEmpty. Если замыкание не возвращает значение, будет возвращен экземпляр текучей строки:

use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
 
$string = Str::of(' ')->whenEmpty(function (Stringable $string) {
return $string->trim()->prepend('Laravel');
});
 
// 'Laravel'

whenNotEmpty

Метод whenNotEmpty вызывает заданное замыкание, если строка не пуста. Если замыкание возвращает значение, это значение также будет возвращено методом whenNotEmpty. Если замыкание не возвращает значение, будет возвращен экземпляр текучей строки:

use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
 
$string = Str::of('Framework')->whenNotEmpty(function (Stringable $string) {
return $string->prepend('Laravel ');
});
 
// 'Laravel Framework'

whenStartsWith

Метод whenStartsWith вызывает заданное замыкание, если строка начинается с заданной подстроки. Замыкание получает экземпляр текучей строки:

use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
 
$string = Str::of('disney world')->whenStartsWith('disney', function (Stringable $string) {
return $string->title();
});
 
// 'Disney World'

whenEndsWith

Метод whenEndsWith вызывает заданное замыкание, если строка заканчивается заданной подстрокой. Замыкание получает экземпляр текучей строки:

use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
 
$string = Str::of('disney world')->whenEndsWith('world', function (Stringable $string) {
return $string->title();
});
 
// 'Disney World'

whenExactly

Метод whenExactly вызывает заданное замыкание, если строка точно соответствует заданной строке. Замыкание получает экземпляр текучей строки:

use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
 
$string = Str::of('laravel')->whenExactly('laravel', function (Stringable $string) {
return $string->title();
});
 
// 'Laravel'

whenNotExactly

Метод whenNotExactly вызывает заданное замыкание, если строка не точно соответствует заданной строке. Замыкание получает экземпляр текучей строки:

use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
 
$string = Str::of('framework')->whenNotExactly('laravel', function (Stringable $string) {
return $string->title();
});
 
// 'Framework'

whenIs

Метод whenIs вызывает заданное замыкание, если строка соответствует заданному шаблону. Звездочки могут использоваться в качестве подстановочных значений. Замыкание получает экземпляр текучей строки:

use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
 
$string = Str::of('foo/bar')->whenIs('foo/*', function (Stringable $string) {
return $string->append('/baz');
});
 
// 'foo/bar/baz'

whenIsAscii

Метод whenIsAscii вызывает заданное замыкание, если строка представляет собой 7-битный ASCII. Замыкание получает экземпляр текучей строки:

use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
 
$string = Str::of('laravel')->whenIsAscii(function (Stringable $string) {
return $string->title();
});
 
// 'Laravel'

whenIsUlid

Метод whenIsUlid вызывает заданное замыкание, если строка представляет собой допустимый ULID. Замыкание получает экземпляр текучей строки:

use Illuminate\Support\Str;
 
$string = Str::of('01gd6r360bp37zj17nxb55yv40')->whenIsUlid(function (Stringable $string) {
return $string->substr(0, 8);
});
 
// '01gd6r36'

whenIsUuid

Метод whenIsUuid вызывает заданное замыкание, если строка представляет собой допустимый UUID. Замыкание получает экземпляр текучей строки:

use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
 
$string = Str::of('a0a2a2d2-0b87-4a18-83f2-2529882be2de')->whenIsUuid(function (Stringable $string) {
return $string->substr(0, 8);
});
 
// 'a0a2a2d2'

whenTest

Метод whenTest вызывает заданное замыкание, если строка соответствует заданному регулярному выражению. Замыкание получает экземпляр текучей строки:

use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
 
$string = Str::of('laravel framework')->whenTest('/laravel/', function (Stringable $string) {
return $string->title();
});
 
// 'Laravel Framework'

wordCount

Метод wordCount возвращает количество слов в строке:

use Illuminate\Support\Str;
 
Str::of('Hello, world!')->wordCount(); // 2

words

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

use Illuminate\Support\Str;
 
$string = Str::of('Perfectly balanced, as all things should be.')->words(3, ' >>>');
 
// Perfectly balanced, as >>>