Метод excerpt
Метод excerpt класса Str предназначен для извлечения отрывка текста из строки. Первым параметром передаётся исходная строка, вторым - количество слов, которые нужно извлечь. Третьим параметром можно указать строку-разделитель, которая будет добавлена в начало и конец отрывка. Если текст короче указанного количества слов, метод возвращает его полностью без изменений.
Синтаксис
<?php
use Illuminate\Support\Str;
Str::excerpt($string, $words, $separator);
?>
Пример
Давайте извлечём отрывок из длинного текста:
<?php
use Illuminate\Support\Str;
$text = 'This is a long text that contains many words and sentences.';
$res = Str::excerpt($text, 5);
echo $res;
?>
Результат выполнения кода:
"This is a long text"
Пример
Давайте извлечём отрывок и добавим разделители:
<?php
use Illuminate\Support\Str;
$text = 'This is a long text that contains many words and sentences.';
$res = Str::excerpt($text, 3, '...');
echo $res;
?>
Результат выполнения кода:
"...This is a..."
Пример
Давайте извлечём отрывок из текста, который короче указанного количества слов:
<?php
use Illuminate\Support\Str;
$text = 'Short text.';
$res = Str::excerpt($text, 10);
echo $res;
?>
Результат выполнения кода:
"Short text."
Пример
Давайте извлечём отрывок и укажем пустой разделитель:
<?php
use Illuminate\Support\Str;
$text = 'This is a long text that contains many words and sentences.';
$res = Str::excerpt($text, 4, '');
echo $res;
?>
Результат выполнения кода:
"This is a long"
Пример
Давайте используем метод excerpt в реальном приложении для вывода описания статьи:
<?php
use Illuminate\Support\Str;
use App\Models\Article;
$article = Article::find(1);
$description = Str::excerpt($article->content, 20, '...');
echo $description;
?>
Результат выполнения кода:
"Lorem ipsum dolor sit amet..."