Skip to content

📘 Str — Вспомогательный класс для работы со строками

Класс Str содержит часто используемые методы для обработки строк.

🔹 Str::after(string $subject, string $search): string

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

php
Str::after('user@example.com', '@'); // 'example.com'

🔹 Str::before(string $subject, string $search): string

Возвращает часть строки до первого вхождения подстроки.

php
Str::before('user@example.com', '@'); // 'user'

🔹 Str::camel(string $string): string

Преобразует строку в camelCase.

php
Str::camel('page_blocks'); // 'pageBlocks'

🔹 Str::contains(string $haystack, string $needle): bool

Проверяет, содержит ли строка указанную подстроку.

php
Str::contains('framework', 'work'); // true

🔹 Str::endsWith(string $haystack, string $needle): bool

Проверяет, заканчивается ли строка на заданную подстроку.

php
Str::endsWith('index.php', '.php'); // true

🔹 Str::explode(string $delimiter, string $string, ?int $limit = null, $padValue = null): array

Разбивает строку на массив по разделителю. Если указан лимит, возвращает массив заданной длины и дополняет недостающие элементы значением $padValue.

php
Str::explode(',', 'one,two'); 
// ['one', 'two']

Str::explode(',', 'one,two', 4, ''); 
// ['one', 'two', '', '']

🔹 Str::finish(string $value, string $cap): string

Добавляет окончание к строке, если оно ещё не добавлено.

php
Str::finish('path/to/dir', '/'); // 'path/to/dir/'

🔹 Str::isAscii(string $string): bool

Проверяет, состоит ли строка только из ASCII-символов.

php
Str::isAscii('Hello'); // true
Str::isAscii('Привет'); // false

🔹 Str::isJson(string $string): bool

Проверяет, является ли строка валидным JSON.

php
Str::isJson('{"a":1}'); // true
Str::isJson('{a:1}'); // false

🔹 Str::isStringable($value): bool

Проверяет, можно ли значение привести к строке (string, int, float, bool или объект с __toString()).

php
Str::isStringable(123); // true
Str::isStringable(new DateTime()); // true
Str::isStringable([]); // false

🔹 Str::kebab(string $string): string

Преобразует строку в kebab-case.

php
Str::kebab('PageBlocks Helper'); // 'page-blocks-helper'

🔹 Str::length(string $string): int

Возвращает длину строки с поддержкой UTF-8.

php
Str::length('Привет'); // 6

🔹 Str::limit(string $string, int $limit = 100, string $end = '...'): string

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

php
Str::limit('This is a long sentence.', 10); // 'This is a ...'

🔹 Str::mask(string $string, string $char = '*', int $index = 0, ?int $length = null): string

Маскирует часть строки другим символом.

php
Str::mask('secret@example.com', '*', 0, 6); // '******@example.com'

🔹 Str::match(string $pattern, string $subject): ?string

Возвращает первое совпадение с регулярным выражением.

php
Str::match('/\d+/', 'Order #12345'); // '12345'

🔹 Str::password(int $length = 16): string

Генерирует случайный безопасный пароль.

php
Str::password(12); // 't8K!sB0@qZ4#'

🔹 Str::position(string $haystack, string $needle): ?int

Возвращает позицию подстроки или null, если не найдена.

php
Str::position('example@test.com', '@'); // 7

🔹 Str::random(int $length = 16): string

Генерирует случайную строку указанной длины.

php
Str::random(8); // 'a8Gf3HkL'

🔹 Str::remove(string $string, string $search): string

Удаляет все вхождения подстроки.

php
Str::remove('this is a test', 'is'); // 'th  a test'

🔹 Str::replace(string $search, string $replace, string $subject): string

Заменяет вхождения подстроки.

php
Str::replace('world', 'PageBlocks', 'Hello world'); // 'Hello PageBlocks'

🔹 Str::reverse(string $string): string

Разворачивает строку (в т.ч. UTF-8).

php
Str::reverse('Привет'); // 'тевирП'

🔹 Str::slug(string $string, string $separator = '-'): string

Преобразует строку в "человеко-понятный" URL-формат (slug).

php
Str::slug('Пример строки для URL!'); // 'primer-stroki-dlya-url'
Str::slug('Page Blocks Helper', '_'); // 'page_blocks_helper'

🔹 Str::snake(string $string): string

Преобразует строку в snake_case.

php
Str::snake('PageBlocks'); // 'page_blocks'

🔹 Str::start(string $value, string $prefix): string

Добавляет начало к строке, если его ещё нет.

php
Str::start('example.com', 'https://'); // 'https://example.com'

🔹 Str::startsWith(string $haystack, string $needle): bool

Проверяет, начинается ли строка с заданной подстроки.

php
Str::startsWith('hello world', 'hello'); // true

🔹 Str::ulid(): string

Генерирует уникальный ULID (упорядоченный ID).

php
Str::ulid(); // '01HXY56Y2B3A9Z2Q7GJ6RFDQXY'

🔹 Str::uuid(): string

Генерирует UUID v4.

php
Str::uuid(); // 'b1b0c210-4cda-4d65-9e3b-0f63ff8c0a58'

🔹 Str::wordCount(string $string): int

Подсчитывает количество слов в строке.

php
Str::wordCount('Это простой текст'); // 3

🔹 Str::words(string $string, int $words = 100, string $end = '...'): string

Обрезает строку до указанного количества слов.

php
Str::words('Это пример строки для обрезки', 3); // 'Это пример строки...'

© PageBlocks 2019-present