Как обрезать строки в Blade.php: методы и примеры

Чтобы усечь заданную строку до указанной длины в шаблоне Blade (используемом в Laravel), вы можете использовать различные методы. Вот несколько примеров кода:

Метод 1: использование вспомогательной функции str_limit

{{ str_limit($string, $limit = 100, $end = '...') }}

Этот метод использует вспомогательную функцию str_limit, которая ограничивает данную строку указанной длиной ($limit). В конце добавляется строка $end, указывающая, что строка была усечена.

Метод 2: использование функции substr

{{ substr($string, 0, $limit) . (strlen($string) > $limit ? '...' : '') }}

Этот метод использует функцию substrдля извлечения нужной части строки. Если длина строки превышает указанный предел, в конце добавляется «…».

Метод 3: использование функции mb_strimwidth

{{ mb_strimwidth($string, 0, $limit, '...') }}

Этот метод использует функцию mb_strimwidth, которая полезна для обработки многобайтовых символов (например, неанглийских символов). Он усекает строку до указанной длины и добавляет в конце «…».

Метод 4: использование специальной директивы Blade
В файле AppServiceProviderвы можете определить специальную директиву Blade для усечения строк:

public function boot()
{
    Blade::directive('truncate', function ($expression) {
        list($string, $limit) = explode(',', $expression);
        return "<?php echo e(mb_strimwidth($string, 0, $limit, '...')); ?>";
    });
}

После определения директивы вы можете использовать ее в своих шаблонах Blade следующим образом:

@truncate($string, $limit)

Этот метод позволяет инкапсулировать логику усечения в директиву многократного использования.