Класс Str
Класс Str предоставляет удобный интерфейс для манипуляции строками,
заменяя стандартные PHP-функции более понятными и безопасными методами.
Все методы класса являются статическими и могут быть вызваны без создания
экземпляра класса. Класс автоматически обрабатывает многобайтовые строки
и предоставляет удобные цепочки методов для трансформации текста.
Синтаксис
<?php
use Illuminate\Support\Str;
Str::method($string, $parameters);
?>
Пример 1. Преобразование регистра
Давайте преобразуем строку в различные форматы регистров:
<?php
use Illuminate\Support\Str;
$str = 'hello world from laravel';
$camel = Str::camel($str);
$snake = Str::snake($str);
$kebab = Str::kebab($str);
$studly = Str::studly($str);
$title = Str::title($str);
$upper = Str::upper($str);
$lower = Str::lower($str);
echo $camel;
echo "\n";
echo $snake;
echo "\n";
echo $kebab;
echo "\n";
echo $studly;
echo "\n";
echo $title;
echo "\n";
echo $upper;
echo "\n";
echo $lower;
?>
Результат выполнения кода:
"helloWorldFromLaravel"
"hello_world_from_laravel"
"hello-world-from-laravel"
"HelloWorldFromLaravel"
"Hello World From Laravel"
"HELLO WORLD FROM LARAVEL"
"hello world from laravel"
Пример 2. Проверка содержимого строки
Проверим, содержит ли строка определённые подстроки или начинается/заканчивается на них:
<?php
use Illuminate\Support\Str;
$str = 'The quick brown fox jumps over the lazy dog';
$contains = Str::contains($str, ['fox', 'cat']);
$startsWith = Str::startsWith($str, 'The');
$endsWith = Str::endsWith($str, 'dog');
$is = Str::is('*fox*', $str);
echo var_export($contains, true);
echo "\n";
echo var_export($startsWith, true);
echo "\n";
echo var_export($endsWith, true);
echo "\n";
echo var_export($is, true);
?>
Результат выполнения кода:
"true"
"true"
"true"
"true"
Пример 3. Извлечение подстрок
Извлечём часть строки до или после определённого символа:
<?php
use Illuminate\Support\Str;
$str = 'user@example.com';
$before = Str::before($str, '@');
$after = Str::after($str, '@');
$between = Str::between($str, 'u', '@');
$limit = Str::limit('The quick brown fox', 10);
$words = Str::words('The quick brown fox', 2);
$excerpt = Str::excerpt('The quick brown fox', 'brown', 3);
echo $before;
echo "\n";
echo $after;
echo "\n";
echo $between;
echo "\n";
echo $limit;
echo "\n";
echo $words;
echo "\n";
echo $excerpt;
?>
Результат выполнения кода:
"user"
"example.com"
"ser"
"The quick ..."
"The quick..."
"...ick brown fox..."
Пример 4. Генерация и манипуляции
Сгенерируем случайные строки и выполним другие манипуляции:
<?php
use Illuminate\Support\Str;
$random = Str::random(10);
$uuid = Str::uuid();
$ulid = Str::ulid();
$slug = Str::slug('Hello World! This is Laravel');
$plural = Str::plural('child');
$singular = Str::singular('children');
$masked = Str::mask('secret-key-123', '*', 4);
echo $random;
echo "\n";
echo $uuid;
echo "\n";
echo $ulid;
echo "\n";
echo $slug;
echo "\n";
echo $plural;
echo "\n";
echo $singular;
echo "\n";
echo $masked;
?>
Результат выполнения кода (значения случайных строк будут отличаться):
"aB3dE5fG7h"
"550e8400-e29b-41d4-a716-446655440000"
"01ARZ3NDEKTSV4RRFFQ69G5FAV"
"hello-world-this-is-laravel"
"children"
"child"
"secr***********"
Смотрите также
-
класс
Stringable,
который предоставляет объектно-ориентированный интерфейс для работы со строками -
метод
slug,
который преобразует строку в SEO-дружественный формат -
метод
random,
который генерирует случайную строку заданной длины -
метод
contains,
который проверяет наличие подстроки в строке