Рядки (Strings)
Вступ
Laravel включає різноманітні функції для маніпулювання рядковими значеннями. Багато з цих функцій використовуються самим фреймворком; однак, ви можете вільно використовувати їх у своїх власних застосунках, якщо вважаєте їх зручними.
Доступні методи
Рядки
__ class_basename e preg_replace_array Str::after Str::afterLast Str::apa Str::ascii Str::before Str::beforeLast Str::between Str::betweenFirst Str::camel Str::charAt Str::chopStart Str::chopEnd Str::contains Str::containsAll Str::doesntContain Str::doesntEndWith Str::doesntStartWith Str::deduplicate Str::endsWith Str::excerpt Str::finish Str::fromBase64 Str::headline Str::inlineMarkdown Str::is Str::isAscii Str::isJson Str::isUlid Str::isUrl Str::isUuid Str::kebab Str::lcfirst Str::length Str::limit Str::lower Str::markdown Str::mask Str::match Str::matchAll Str::orderedUuid Str::padBoth Str::padLeft Str::padRight Str::password Str::plural Str::pluralStudly Str::position Str::random Str::remove Str::repeat Str::replace Str::replaceArray Str::replaceFirst Str::replaceLast Str::replaceMatches Str::replaceStart Str::replaceEnd Str::reverse Str::singular Str::slug Str::snake Str::squish Str::start Str::startsWith Str::studly Str::substr Str::substrCount Str::substrReplace Str::swap Str::take Str::title Str::toBase64 Str::transliterate Str::trim Str::ltrim Str::rtrim Str::ucfirst Str::ucsplit Str::upper Str::ulid Str::unwrap Str::uuid Str::uuid7 Str::wordCount Str::wordWrap Str::words Str::wrap str trans trans_choice
Рядки Fluent
after afterLast apa append ascii basename before beforeLast between betweenFirst camel charAt classBasename chopStart chopEnd contains containsAll decrypt deduplicate dirname doesntEndWith doesntStartWith encrypt endsWith exactly excerpt explode finish fromBase64 hash headline inlineMarkdown is isAscii isEmpty isNotEmpty isJson isUlid isUrl isUuid kebab lcfirst length limit lower markdown mask match matchAll isMatch newLine padBoth padLeft padRight pipe plural position prepend remove repeat replace replaceArray replaceFirst replaceLast replaceMatches replaceStart replaceEnd scan singular slug snake split squish start startsWith stripTags studly substr substrReplace swap take tap test title toBase64 toHtmlString toUri transliterate trim ltrim rtrim ucfirst ucsplit unwrap upper when whenContains whenContainsAll whenDoesntEndWith whenDoesntStartWith whenEmpty whenNotEmpty whenStartsWith whenEndsWith whenExactly whenNotExactly whenIs whenIsAscii whenIsUlid whenIsUuid whenTest wordCount words wrap
Рядки
__()
Функція __ перекладає заданий рядок перекладу або ключ перекладу, використовуючи ваші файли локалізації:
echo __('Ласкаво просимо до нашого застосунку'); echo __('messages.welcome');
Якщо вказаний рядок перекладу або ключ не існує, функція __ поверне задане значення. Отже, використовуючи наведений вище приклад, функція __ поверне messages.welcome, якщо цей ключ перекладу не існує.
class_basename()
Функція class_basename повертає ім'я класу заданого класу з видаленим простором імен класу:
$class = class_basename('Foo\Bar\Baz');
// Baz
e()
Функція e запускає PHP-функцію htmlspecialchars з параметром double_encode, встановленим на true за замовчуванням:
echo e('<html>foo</html>');
// <html>foo</html>
preg_replace_array()
Функція preg_replace_array замінює заданий шаблон у рядку послідовно, використовуючи масив:
$string = 'Подія відбудеться між :start та :end'; $replaced = preg_replace_array('/:[a-z_]+/', ['8:30', '9:00'], $string); // Подія відбудеться між 8:30 та 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::apa()
Метод Str::apa перетворює заданий рядок у заголовний регістр відповідно до вказівок APA:
use Illuminate\Support\Str;
$title = Str::apa('Creating A Project');
// 'Creating a Project'
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::charAt()
Метод Str::charAt повертає символ за вказаним індексом. Якщо індекс виходить за межі, повертається false:
use Illuminate\Support\Str;
$character = Str::charAt('This is my name.', 6);
// 's'
Str::chopStart()
Метод Str::chopStart видаляє перше входження заданого значення лише якщо значення з'являється на початку рядка:
use Illuminate\Support\Str;
$url = Str::chopStart('https://laravel.com', 'https://');
// 'laravel.com'
Ви також можете передати масив як другий аргумент. Якщо рядок починається з будь-якого значення в масиві, то це значення буде видалено з рядка:
use Illuminate\Support\Str;
$url = Str::chopStart('http://laravel.com', ['https://', 'http://']);
// 'laravel.com'
Str::chopEnd()
Метод Str::chopEnd видаляє останнє входження заданого значення лише якщо значення з'являється в кінці рядка:
use Illuminate\Support\Str;
$url = Str::chopEnd('app/Models/Photograph.php', '.php');
// 'app/Models/Photograph'
Ви також можете передати масив як другий аргумент. Якщо рядок закінчується будь-яким із значень у масиві, то це значення буде видалено з рядка:
use Illuminate\Support\Str;
$url = Str::chopEnd('laravel.com/index.php', ['/index.html', '/index.php']);
// 'laravel.com'
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
Ви можете вимкнути чутливість до регістру, встановивши аргумент ignoreCase у true:
use Illuminate\Support\Str;
$contains = Str::contains('This is my name', 'MY', ignoreCase: true);
// true
Str::containsAll()
Метод Str::containsAll визначає, чи містить заданий рядок всі значення з заданого масиву:
use Illuminate\Support\Str;
$containsAll = Str::containsAll('This is my name', ['my', 'name']);
// true
Ви можете вимкнути чутливість до регістру, встановивши аргумент ignoreCase у значення true:
use Illuminate\Support\Str;
$containsAll = Str::containsAll('This is my name', ['MY', 'NAME'], ignoreCase: true);
// true
Str::doesntContain()
Метод Str::doesntContain визначає, чи не містить заданий рядок заданого значення. За замовчуванням цей метод чутливий до регістру:
use Illuminate\Support\Str;
$doesntContain = Str::doesntContain('This is name', 'my');
// true
Ви також можете передати масив значень, щоб визначити, чи не містить заданий рядок жодного з значень у масиві:
use Illuminate\Support\Str;
$doesntContain = Str::doesntContain('This is name', ['my', 'foo']);
// true
Ви можете вимкнути чутливість до регістру, встановивши аргумент ignoreCase в true:
use Illuminate\Support\Str;
$doesntContain = Str::doesntContain('This is name', 'MY', ignoreCase: true);
// true
Str::deduplicate()
Метод Str::deduplicate замінює послідовні випадки символу на один випадок цього символу у вказаному рядку. За замовчуванням метод видаляє дублікати пробілів:
use Illuminate\Support\Str;
$result = Str::deduplicate('The Laravel Framework');
// The Laravel Framework
Ви можете вказати інший символ для видалення дублікатів, передавши його як другий аргумент методу:
use Illuminate\Support\Str;
$result = Str::deduplicate('The---Laravel---Framework', '-');
// The-Laravel-Framework
Str::doesntEndWith()
Метод Str::doesntEndWith визначає, чи не закінчується заданий рядок на задане значення:
use Illuminate\Support\Str;
$result = Str::doesntEndWith('This is my name', 'dog');
// true
Ви також можете передати масив значень, щоб визначити, чи не закінчується даний рядок жодним із значень у масиві:
use Illuminate\Support\Str;
$result = Str::doesntEndWith('This is my name', ['this', 'foo']);
// true
$result = Str::doesntEndWith('This is my name', ['name', 'foo']);
// false
Str::doesntStartWith()
Метод Str::doesntStartWith визначає, чи не починається заданий рядок з вказаного значення:
use Illuminate\Support\Str;
$result = Str::doesntStartWith('This is my name', 'That');
// true
Якщо передано масив можливих значень, метод doesntStartWith поверне true, якщо рядок не починається з жодного з наданих значень:
$result = Str::doesntStartWith('This is my name', ['This', 'That', 'There']);
// 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::fromBase64()
Метод Str::fromBase64 декодує заданий рядок Base64:
use Illuminate\Support\Str;
$decoded = Str::fromBase64('TGFyYXZlbA==');
// Laravel
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 перетворює Markdown у стилі GitHub у вбудований HTML, використовуючи CommonMark. Однак, на відміну від методу markdown, він не обгортає весь згенерований HTML у блоковий елемент:
use Illuminate\Support\Str;
$html = Str::inlineMarkdown('**Laravel**');
// <strong>Laravel</strong>
Безпека Markdown
За замовчуванням, Markdown підтримує необроблений HTML, що може призвести до вразливостей міжсайтового скриптингу (XSS) при використанні з необробленим введенням користувача. Відповідно до документації з безпеки CommonMark, ви можете використовувати опцію html_input для екранування або видалення необробленого HTML, а також опцію allow_unsafe_links для вказівки, чи дозволяти небезпечні посилання. Якщо вам потрібно дозволити деякий необроблений HTML, ви повинні пропустити ваш скомпільований Markdown через HTML Purifier:
use Illuminate\Support\Str;
Str::inlineMarkdown('Inject: <script>alert("Hello XSS!");</script>', [
'html_input' => 'strip',
'allow_unsafe_links' => false,
]);
// Inject: alert("Hello XSS!");
Str::is()
Метод Str::is визначає, чи відповідає заданий рядок заданому шаблону. Зірочки можуть використовуватися як символи підстановки:
use Illuminate\Support\Str;
$matches = Str::is('foo*', 'foobar');
// true
$matches = Str::is('baz*', 'foobar');
// false
Ви можете вимкнути чутливість до регістру, встановивши аргумент ignoreCase в true:
use Illuminate\Support\Str;
$matches = Str::is('*.jpg', 'photo.JPG', ignoreCase: true);
// true
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
Метод isUrl вважає широкий спектр протоколів дійсними. Однак, ви можете вказати протоколи, які слід вважати дійсними, надавши їх методу isUrl:
$isUrl = Str::isUrl('http://example.com', ['http', 'https']);
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...
Ви можете передати третій аргумент до методу, щоб змінити рядок, який буде додано в кінці скороченого рядка:
$truncated = Str::limit('The quick brown fox jumps over the lazy dog', 20, ' (...)');
// The quick brown fox (...)
Якщо ви хочете зберегти цілі слова при скороченні рядка, ви можете скористатися аргументом preserveWords. Коли цей аргумент має значення true, рядок буде скорочено до найближчого цілого слова:
$truncated = Str::limit('The quick brown fox', 12, preserveWords: true);
// The quick...
Str::lower()
Метод Str::lower перетворює заданий рядок на малі літери:
use Illuminate\Support\Str;
$converted = Str::lower('LARAVEL');
// laravel
Str::markdown()
Метод Str::markdown перетворює Markdown у стилі GitHub у 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>
Безпека Markdown
За замовчуванням, Markdown підтримує необроблений HTML, що може призвести до вразливостей міжсайтового скриптингу (XSS) при використанні з необробленим введенням користувача. Відповідно до документації з безпеки CommonMark, ви можете використовувати опцію html_input для екранування або видалення необробленого HTML, а також опцію allow_unsafe_links для вказівки, чи дозволяти небезпечні посилання. Якщо вам потрібно дозволити деякий необроблений HTML, ви повинні пропустити ваш скомпільований Markdown через HTML Purifier:
use Illuminate\Support\Str;
Str::markdown('Inject: <script>alert("Hello XSS!");</script>', [
'html_input' => 'strip',
'allow_unsafe_links' => false,
]);
// <p>Inject: alert("Hello XSS!");</p>
Str::mask()
Метод Str::mask маскує частину рядка повторюваним символом і може використовуватися для обфускації сегментів рядків, таких як адреси електронної пошти та номери телефонів:
use Illuminate\Support\Str; $string = Str::mask('taylor@example.com', '*', 3); // tay***************
Якщо потрібно, ви можете надати від'ємне число як третій аргумент методу mask, що вкаже методу почати маскування на заданій відстані від кінця рядка:
$string = Str::mask('taylor@example.com', '*', -15, 3); // tay***@example.com
Str::match()
Метод Str::match поверне частину рядка, яка відповідає заданому шаблону регулярного виразу:
use Illuminate\Support\Str;
$result = Str::match('/bar/', 'foo bar');
// 'bar'
$result = Str::match('/foo (.*)/', 'foo bar');
// 'bar'
Str::matchAll()
Метод Str::matchAll поверне колекцію, що містить частини рядка, які відповідають заданому шаблону регулярного виразу:
use Illuminate\Support\Str;
$result = Str::matchAll('/bar/', 'bar foo bar');
// collect(['bar', 'bar'])
Якщо ви вказуєте групу відповідності в межах виразу, Laravel поверне колекцію збігів першої групи відповідності:
use Illuminate\Support\Str;
$result = Str::matchAll('/f(\w*)/', 'bar fun bar fly');
// collect(['un', 'ly']);
Якщо збігів не знайдено, буде повернено порожню колекцію.
Str::orderedUuid()
Метод Str::orderedUuid генерує UUID з "першим часовим штампом", який може бути ефективно збережений у проіндексованій колонці бази даних. Кожен UUID, згенерований за допомогою цього методу, буде відсортований після UUID, згенерованих раніше за допомогою цього методу:
use Illuminate\Support\Str;
return (string) Str::orderedUuid();
Str::padBoth()
Метод Str::padBoth обгортає функцію PHP str_pad, доповнюючи обидві сторони рядка іншим рядком, поки кінцевий рядок не досягне бажаної довжини:
use Illuminate\Support\Str;
$padded = Str::padBoth('James', 10, '_');
// '__James___'
$padded = Str::padBoth('James', 10);
// ' James '
Str::padLeft()
Метод Str::padLeft обгортає функцію PHP str_pad, додаючи символи з лівого боку рядка іншим рядком, поки кінцевий рядок не досягне бажаної довжини:
use Illuminate\Support\Str;
$padded = Str::padLeft('James', 10, '-=');
// '-=-=-James'
$padded = Str::padLeft('James', 10);
// ' James'
Str::padRight()
Метод Str::padRight обгортає функцію PHP str_pad, доповнюючи праву сторону рядка іншим рядком до досягнення кінцевим рядком бажаної довжини:
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 перетворює рядок з одниною, відформатований у стилі studly caps, у його множинну форму. Ця функція підтримує будь-яку з мов, підтримуваних засобом множини 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 генерує випадковий рядок заданої довжини. Ця функція використовує PHP-функцію random_bytes:
use Illuminate\Support\Str;
$random = Str::random(40);
Під час тестування може бути корисно "підробити" значення, яке повертається методом Str::random. Для цього ви можете використовувати метод createRandomStringsUsing:
Str::createRandomStringsUsing(function () {
return 'fake-random-string';
});
Щоб вказати методу random повернутися до нормального генерування випадкових рядків, ви можете викликати метод createRandomStringsNormally:
Str::createRandomStringsNormally();
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 11.x';
$replaced = Str::replace('11.x', '12.x', $string);
// Laravel 12.x
Метод replace також приймає аргумент caseSensitive. За замовчуванням метод replace є чутливим до регістру:
$replaced = Str::replace(
'php',
'Laravel',
'PHP Framework for Web Artisans',
caseSensitive: false
);
// Laravel Framework for Web Artisans
Str::replaceArray()
Метод Str::replaceArray послідовно замінює задане значення в рядку, використовуючи масив:
use Illuminate\Support\Str;
$string = 'The event will take place between ? and ?';
$replaced = Str::replaceArray('?', ['8:30', '9:00'], $string);
// The event will take place between 8:30 and 9:00
Str::replaceFirst()
Метод Str::replaceFirst замінює перше входження заданого значення в рядку:
use Illuminate\Support\Str;
$replaced = Str::replaceFirst('the', 'a', 'the quick brown fox jumps over the lazy dog');
// a 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');
// the quick brown fox jumps over a 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 замінює декілька значень у заданому рядку, використовуючи функцію PHP strtr:
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::toBase64()
Метод Str::toBase64 перетворює заданий рядок у Base64:
use Illuminate\Support\Str;
$base64 = Str::toBase64('Laravel');
// TGFyYXZlbA==
Str::transliterate()
Метод Str::transliterate спробує перетворити заданий рядок у його найближче ASCII-представлення:
use Illuminate\Support\Str;
$email = Str::transliterate('ⓣⓔⓢⓣ@ⓛⓐⓡⓐⓥⓔⓛ.ⓒⓞⓜ');
// 'example@example.com'
Str::trim()
Метод Str::trim видаляє пробіли (або інші символи) з початку та кінця заданого рядка. На відміну від нативної функції PHP trim, метод Str::trim також видаляє символи пробілів Unicode:
use Illuminate\Support\Str;
$string = Str::trim(' foo bar ');
// 'foo bar'
Str::ltrim()
Метод Str::ltrim видаляє пробіли (або інші символи) з початку заданого рядка. На відміну від нативної функції PHP ltrim, метод Str::ltrim також видаляє символи пробілів унікоду:
use Illuminate\Support\Str;
$string = Str::ltrim(' foo bar ');
// 'foo bar '
Str::rtrim()
Метод Str::rtrim видаляє пробіли (або інші символи) з кінця заданого рядка. На відміну від нативної функції PHP rtrim, метод Str::rtrim також видаляє пробіли в юнікоді:
use Illuminate\Support\Str;
$string = Str::rtrim(' foo bar ');
// ' foo bar'
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::ulid. Для цього ви можете використовувати метод createUlidsUsing:
use Symfony\Component\Uid\Ulid;
Str::createUlidsUsing(function () {
return new Ulid('01HRDBNHHCKNW2AK4Z29SN82T9');
});
Щоб вказати методу ulid повернутися до нормального генерування ULID, ви можете викликати метод createUlidsNormally:
Str::createUlidsNormally();
Str::unwrap()
Метод Str::unwrap видаляє вказані рядки з початку та кінця заданого рядка:
use Illuminate\Support\Str;
Str::unwrap('-Laravel-', '-');
// Laravel
Str::unwrap('{framework: "Laravel"}', '{', '}');
// framework: "Laravel"
Str::uuid()
Метод Str::uuid генерує UUID (версія 4):
use Illuminate\Support\Str;
return (string) Str::uuid();
Під час тестування може бути корисно "імітувати" значення, яке повертається методом Str::uuid. Для цього ви можете використовувати метод createUuidsUsing:
use Ramsey\Uuid\Uuid;
Str::createUuidsUsing(function () {
return Uuid::fromString('eadbfeac-5258-45c2-bab7-ccb9b5ef74f9');
});
Щоб вказати методу uuid повернутися до нормального генерування UUID, ви можете викликати метод createUuidsNormally:
Str::createUuidsNormally();
Str::uuid7()
Метод Str::uuid7 генерує UUID (версія 7):
use Illuminate\Support\Str;
return (string) Str::uuid7();
Можна передати DateTimeInterface як необов'язковий параметр, який буде використано для генерації впорядкованого UUID:
return (string) Str::uuid7(time: now());
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 рядки надають більш плавний, об'єктно-орієнтований інтерфейс для роботи зі строковими значеннями, дозволяючи об'єднувати декілька операцій з рядками разом, використовуючи більш читабельний синтаксис у порівнянні з традиційними операціями з рядками.
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'
apa
Метод apa перетворює заданий рядок у заголовний регістр відповідно до вказівок APA:
use Illuminate\Support\Str;
$converted = Str::of('a nice title uses the correct case')->apa();
// A Nice Title Uses the Correct Case
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'
charAt
Метод charAt повертає символ за вказаним індексом. Якщо індекс виходить за межі, повертається false:
use Illuminate\Support\Str;
$character = Str::of('This is my name.')->charAt(6);
// 's'
classBasename
Метод classBasename повертає ім'я класу заданого класу з видаленим простором імен класу:
use Illuminate\Support\Str;
$class = Str::of('Foo\Bar\Baz')->classBasename();
// 'Baz'
chopStart
Метод chopStart видаляє перше входження заданого значення лише якщо значення з'являється на початку рядка:
use Illuminate\Support\Str;
$url = Str::of('https://laravel.com')->chopStart('https://');
// 'laravel.com'
Ви також можете передати масив. Якщо рядок починається з будь-якого значення в масиві, то це значення буде видалено з рядка:
use Illuminate\Support\Str;
$url = Str::of('http://laravel.com')->chopStart(['https://', 'http://']);
// 'laravel.com'
chopEnd
Метод chopEnd видаляє останнє входження заданого значення лише якщо значення з'являється в кінці рядка:
use Illuminate\Support\Str;
$url = Str::of('https://laravel.com')->chopEnd('.com');
// 'https://laravel'
Ви також можете передати масив. Якщо рядок закінчується будь-яким із значень у масиві, то це значення буде видалено з рядка:
use Illuminate\Support\Str;
$url = Str::of('http://laravel.com')->chopEnd(['.com', '.io']);
// 'http://laravel'
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
Ви можете вимкнути чутливість до регістру, встановивши аргумент ignoreCase в true:
use Illuminate\Support\Str;
$contains = Str::of('This is my name')->contains('MY', ignoreCase: true);
// true
containsAll
Метод containsAll визначає, чи містить заданий рядок всі значення з заданого масиву:
use Illuminate\Support\Str;
$containsAll = Str::of('This is my name')->containsAll(['my', 'name']);
// true
Ви можете вимкнути чутливість до регістру, встановивши аргумент ignoreCase в true:
use Illuminate\Support\Str;
$containsAll = Str::of('This is my name')->containsAll(['MY', 'NAME'], ignoreCase: true);
// true
decrypt
Метод decrypt розшифровує зашифрований рядок:
use Illuminate\Support\Str;
$decrypted = $encrypted->decrypt();
// 'secret'
Для зворотного процесу decrypt, дивіться метод encrypt.
deduplicate
Метод deduplicate замінює послідовні екземпляри символу на один екземпляр цього символу в заданому рядку. За замовчуванням метод видаляє дублікати пробілів:
use Illuminate\Support\Str;
$result = Str::of('The Laravel Framework')->deduplicate();
// The Laravel Framework
Ви можете вказати інший символ для видалення дублікатів, передавши його як другий аргумент методу:
use Illuminate\Support\Str;
$result = Str::of('The---Laravel---Framework')->deduplicate('-');
// The-Laravel-Framework
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'
doesntEndWith
Метод doesntEndWith визначає, чи не закінчується заданий рядок на задане значення:
use Illuminate\Support\Str;
$result = Str::of('This is my name')->doesntEndWith('dog');
// true
Ви також можете передати масив значень, щоб визначити, чи не закінчується даний рядок жодним із значень у масиві:
use Illuminate\Support\Str;
$result = Str::of('This is my name')->doesntEndWith(['this', 'foo']);
// true
$result = Str::of('This is my name')->doesntEndWith(['name', 'foo']);
// false
doesntStartWith
Метод doesntStartWith визначає, чи не починається заданий рядок із заданого значення:
use Illuminate\Support\Str;
$result = Str::of('This is my name')->doesntStartWith('That');
// true
Ви також можете передати масив значень, щоб визначити, чи не починається заданий рядок з жодного з значень у масиві:
use Illuminate\Support\Str;
$result = Str::of('This is my name')->doesntStartWith(['This', 'That', 'There']);
// true
encrypt
Метод encrypt зашифровує рядок:
use Illuminate\Support\Str;
$encrypted = Str::of('secret')->encrypt();
Для зворотного процесу encrypt, дивіться метод decrypt.
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
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'
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/
fromBase64
Метод fromBase64 декодує заданий рядок Base64:
use Illuminate\Support\Str;
$decoded = Str::of('TGFyYXZlbA==')->fromBase64();
// Laravel
hash
Метод hash хешує рядок, використовуючи заданий алгоритм:
use Illuminate\Support\Str;
$hashed = Str::of('secret')->hash(algorithm: 'sha256');
// '2bb80d537b1da3e38bd30361aa855686bde0eacd7162fef6a25fe97bf527a25b'
headline
Метод headline перетворить рядки, розділені регістром, дефісами або підкресленнями, у рядок, розділений пробілами, з першою літерою кожного слова, написаною з великої літери:
use Illuminate\Support\Str;
$headline = Str::of('taylor_otwell')->headline();
// Taylor Otwell
$headline = Str::of('EmailNotificationSent')->headline();
// Email Notification Sent
inlineMarkdown
Метод inlineMarkdown перетворює Markdown у стилі GitHub у вбудований HTML, використовуючи CommonMark. Однак, на відміну від методу markdown, він не обгортає весь згенерований HTML у блоковий елемент:
use Illuminate\Support\Str;
$html = Str::of('**Laravel**')->inlineMarkdown();
// <strong>Laravel</strong>
Безпека Markdown
За замовчуванням, Markdown підтримує необроблений HTML, що може призвести до вразливостей міжсайтового скриптингу (XSS) при використанні з необробленим введенням користувача. Відповідно до документації з безпеки CommonMark, ви можете використовувати опцію html_input для екранування або видалення необробленого HTML, а також опцію allow_unsafe_links для вказівки, чи дозволяти небезпечні посилання. Якщо вам потрібно дозволити деякий необроблений HTML, ви повинні пропустити ваш скомпільований Markdown через HTML Purifier:
use Illuminate\Support\Str;
Str::of('Inject: <script>alert("Hello XSS!");</script>')->inlineMarkdown([
'html_input' => 'strip',
'allow_unsafe_links' => false,
]);
// Inject: alert("Hello XSS!");
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
Метод isUrl вважає широкий спектр протоколів дійсними. Однак, ви можете вказати протоколи, які слід вважати дійсними, надавши їх методу isUrl:
$result = Str::of('http://example.com')->isUrl(['http', 'https']);
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...
Ви також можете передати другий аргумент, щоб змінити рядок, який буде додано в кінці скороченого рядка:
$truncated = Str::of('The quick brown fox jumps over the lazy dog')->limit(20, ' (...)');
// The quick brown fox (...)
Якщо ви хочете зберегти цілі слова при скороченні рядка, ви можете скористатися аргументом preserveWords. Коли цей аргумент має значення true, рядок буде скорочено до найближчої межі цілого слова:
$truncated = Str::of('The quick brown fox')->limit(12, preserveWords: true);
// The quick...
lower
Метод lower перетворює заданий рядок на малі літери:
use Illuminate\Support\Str;
$result = Str::of('LARAVEL')->lower();
// '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>
Безпека Markdown
За замовчуванням, Markdown підтримує необроблений HTML, що може призвести до вразливостей міжсайтового скриптингу (XSS) при використанні з необробленими даними користувача. Відповідно до документації з безпеки CommonMark, ви можете використовувати опцію html_input для екранування або видалення необробленого HTML, а також опцію allow_unsafe_links для визначення, чи дозволяти небезпечні посилання. Якщо вам потрібно дозволити деякий необроблений HTML, ви повинні пропустити ваш скомпільований Markdown через HTML Purifier:
use Illuminate\Support\Str;
Str::of('Inject: <script>alert("Hello XSS!");</script>')->markdown([
'html_input' => 'strip',
'allow_unsafe_links' => false,
]);
// <p>Inject: alert("Hello XSS!");</p>
mask
Метод mask маскує частину рядка повторюваним символом і може використовуватися для приховування сегментів рядків, таких як адреси електронної пошти та номери телефонів:
use Illuminate\Support\Str; $string = Str::of('taylor@example.com')->mask('*', 3); // tay***************
За потреби ви можете передати від’ємні числа як третій або четвертий аргумент методу mask, що вкаже методу починати маскування на заданій відстані від кінця рядка:
$string = Str::of('taylor@example.com')->mask('*', -15, 3); // tay***@example.com $string = Str::of('taylor@example.com')->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 обгортає функцію PHP str_pad, доповнюючи обидві сторони рядка іншим рядком, поки кінцевий рядок не досягне бажаної довжини:
use Illuminate\Support\Str;
$padded = Str::of('James')->padBoth(10, '_');
// '__James___'
$padded = Str::of('James')->padBoth(10);
// ' James '
padLeft
Метод padLeft обгортає функцію PHP str_pad, додаючи рядок з лівого боку іншого рядка, поки кінцевий рядок не досягне бажаної довжини:
use Illuminate\Support\Str;
$padded = Str::of('James')->padLeft(10, '-=');
// '-=-=-James'
$padded = Str::of('James')->padLeft(10);
// ' James'
padRight
Метод padRight обгортає функцію PHP str_pad, доповнюючи праву сторону рядка іншим рядком, поки кінцевий рядок не досягне бажаної довжини:
use Illuminate\Support\Str;
$padded = Str::of('James')->padRight(10, '-');
// 'James-----'
$padded = Str::of('James')->padRight(10);
// 'James '
pipe
Метод pipe дозволяє трансформувати рядок, передаючи його поточне значення в заданий callable:
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']);
// The event will take place between 8:30 and 9:00
replaceFirst
Метод replaceFirst замінює перше входження заданого значення в рядку:
use Illuminate\Support\Str;
$replaced = Str::of('the quick brown fox jumps over the lazy dog')->replaceFirst('the', 'a');
// a quick brown fox jumps over the lazy dog
replaceLast
Метод replaceLast замінює останнє входження заданого значення в рядку:
use Illuminate\Support\Str;
$replaced = Str::of('the quick brown fox jumps over the lazy dog')->replaceLast('the', 'a');
// the quick brown fox jumps over a lazy dog
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
scan
Метод scan аналізує вхідні дані з рядка в колекцію відповідно до формату, підтримуваного функцією PHP sscanf:
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 "слаг" з наданого рядка:
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
stripTags
Метод stripTags видаляє всі HTML та PHP теги з рядка:
use Illuminate\Support\Str;
$result = Str::of('<a href="https://laravel.com">Taylor <b>Otwell</b></a>')->stripTags();
// Taylor Otwell
$result = Str::of('<a href="https://laravel.com">Taylor <b>Otwell</b></a>')->stripTags('<b>');
// Taylor <b>Otwell</b>
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 замінює декілька значень у рядку, використовуючи функцію PHP strtr:
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
toBase64
Метод toBase64 перетворює заданий рядок у Base64:
use Illuminate\Support\Str;
$base64 = Str::of('Laravel')->toBase64();
// TGFyYXZlbA==
toHtmlString
Метод toHtmlString перетворює даний рядок на екземпляр Illuminate\Support\HtmlString, який не буде екрановано при відображенні в шаблонах Blade:
use Illuminate\Support\Str;
$htmlString = Str::of('Nuno Maduro')->toHtmlString();
toUri
Метод toUri перетворює даний рядок на екземпляр Illuminate\Support\Uri:
use Illuminate\Support\Str;
$uri = Str::of('https://example.com')->toUri();
transliterate
Метод transliterate спробує перетворити заданий рядок у його найближче ASCII-представлення:
use Illuminate\Support\Str;
$email = Str::of('ⓣⓔⓢⓣ@ⓛⓐⓡⓐⓥⓔⓛ.ⓒⓞⓜ')->transliterate()
// 'example@example.com'
trim
Метод trim обрізає заданий рядок. На відміну від нативної PHP функції trim, метод Laravel trim також видаляє символи пробілів Unicode:
use Illuminate\Support\Str;
$string = Str::of(' Laravel ')->trim();
// 'Laravel'
$string = Str::of('/Laravel/')->trim('/');
// 'Laravel'
ltrim
Метод ltrim обрізає ліву сторону рядка. На відміну від нативної функції PHP ltrim, метод Laravel ltrim також видаляє символи пробілу в юнікоді:
use Illuminate\Support\Str;
$string = Str::of(' Laravel ')->ltrim();
// 'Laravel '
$string = Str::of('/Laravel/')->ltrim('/');
// 'Laravel/'
rtrim
Метод rtrim обрізає праву сторону заданого рядка. На відміну від нативної функції PHP rtrim, метод rtrim у Laravel також видаляє символи пробілів унікод:
use Illuminate\Support\Str;
$string = Str::of(' Laravel ')->rtrim();
// ' Laravel'
$string = Str::of('/Laravel/')->rtrim('/');
// '/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'])
unwrap
Метод unwrap видаляє вказані рядки з початку та кінця заданого рядка:
use Illuminate\Support\Str;
Str::of('-Laravel-')->unwrap('-');
// Laravel
Str::of('{framework: "Laravel"}')->unwrap('{', '}');
// framework: "Laravel"
upper
Метод upper перетворює заданий рядок на великі літери:
use Illuminate\Support\Str;
$adjusted = Str::of('laravel')->upper();
// LARAVEL
when
Метод when викликає надане замикання, якщо задана умова є true. Замикання отримає екземпляр fluent рядка:
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 викликає передану замикання, якщо рядок містить задане значення. Замикання отримає екземпляр fluent рядка:
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 викликає передану замикання, якщо рядок містить усі задані підрядки. Замикання отримає екземпляр fluent рядка:
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.
whenDoesntEndWith
Метод whenDoesntEndWith викликає передану замикання, якщо рядок не закінчується на вказаний підрядок. Замикання отримає екземпляр об'єкта fluent string:
use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
$string = Str::of('disney world')->whenDoesntEndWith('land', function (Stringable $string) {
return $string->title();
});
// 'Disney World'
whenDoesntStartWith
Метод whenDoesntStartWith викликає передану замикання, якщо рядок не починається з вказаного підрядка. Замикання отримає екземпляр fluent string:
use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
$string = Str::of('disney world')->whenDoesntStartWith('sea', function (Stringable $string) {
return $string->title();
});
// 'Disney World'
whenEmpty
Метод whenEmpty викликає передану замикання, якщо рядок порожній. Якщо замикання повертає значення, це значення також буде повернено методом whenEmpty. Якщо замикання не повертає значення, буде повернено екземпляр рядка з ланцюжком методів:
use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
$string = Str::of(' ')->trim()->whenEmpty(function (Stringable $string) {
return $string->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 викликає передану замикання, якщо рядок починається з вказаного підрядка. Замикання отримає екземпляр fluent string:
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 викликає передану замикання, якщо рядок закінчується на заданий підрядок. Замикання отримає екземпляр об'єкта fluent string:
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 викликає передану замикання, якщо рядок точно відповідає заданому рядку. Замикання отримає екземпляр fluent string:
use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
$string = Str::of('laravel')->whenExactly('laravel', function (Stringable $string) {
return $string->title();
});
// 'Laravel'
whenNotExactly
Метод whenNotExactly викликає передану замикання, якщо рядок не точно відповідає заданому рядку. Замикання отримає екземпляр fluent string:
use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
$string = Str::of('framework')->whenNotExactly('laravel', function (Stringable $string) {
return $string->title();
});
// 'Framework'
whenIs
Метод whenIs викликає передану замикання, якщо рядок відповідає заданому шаблону. Зірочки можуть використовуватися як символи підстановки. Замикання отримає екземпляр рядка fluent:
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. Замикання отримає екземпляр рядка fluent:
use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
$string = Str::of('laravel')->whenIsAscii(function (Stringable $string) {
return $string->title();
});
// 'Laravel'
whenIsUlid
Метод whenIsUlid викликає передану замикання, якщо рядок є дійсним ULID. Замикання отримає екземпляр fluent рядка:
use Illuminate\Support\Str;
$string = Str::of('01gd6r360bp37zj17nxb55yv40')->whenIsUlid(function (Stringable $string) {
return $string->substr(0, 8);
});
// '01gd6r36'
whenIsUuid
Метод whenIsUuid викликає передану замикання, якщо рядок є дійсним UUID. Замикання отримає екземпляр fluent string:
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 викликає передану замикання, якщо рядок відповідає заданому регулярному виразу. Замикання отримає екземпляр fluent string:
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 >>>
wrap
Метод wrap обгортає заданий рядок додатковим рядком або парою рядків:
use Illuminate\Support\Str;
Str::of('Laravel')->wrap('"');
// "Laravel"
Str::is('is')->wrap(before: 'This ', after: ' Laravel!');
// This is Laravel!
