Эффективные способы сокращения строк в PHP с помощью многоточия

Метод 1: использование функции substr()
Функция substr() позволяет извлечь часть строки. Указав начальную позицию и желаемую длину, вы можете эффективно обрезать строку. Вот пример:

function shortenStringWithDots($string, $length) {
    if (strlen($string) > $length) {
        $shortenedString = substr($string, 0, $length - 3) . '...';
        return $shortenedString;
    }
    return $string;
}
// Usage
$text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit.";
$shortenedText = shortenStringWithDots($text, 20);
echo $shortenedText; // Output: "Lorem ipsum dolor..."

Метод 2: использование функции mb_strimwidth()
Если вы работаете с многобайтовыми символами (например, в кодировке UTF-8), функция mb_strimwidth() является лучшим вариантом. Это гарантирует правильное усечение строки с учетом границ символов. Вот пример:

function shortenStringWithDots($string, $length) {
    if (mb_strlen($string) > $length) {
        $shortenedString = mb_strimwidth($string, 0, $length - 3, '...');
        return $shortenedString;
    }
    return $string;
}
// Usage
$text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit.";
$shortenedText = shortenStringWithDots($text, 20);
echo $shortenedText; // Output: "Lorem ipsum dolor..."

Метод 3: использование пользовательской функции
Вы также можете создать пользовательскую функцию, которая учитывает границы слов, чтобы усеченная строка оставалась значимой. Вот пример:

function shortenStringWithDots($string, $length) {
    if (strlen($string) > $length) {
        $words = explode(' ', $string);
        $shortenedString = '';
        foreach ($words as $word) {
            if (strlen($shortenedString) + strlen($word) > $length - 3) {
                break;
            }
            $shortenedString .= $word . ' ';
        }
        $shortenedString .= '...';
        return $shortenedString;
    }
    return $string;
}
// Usage
$text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit.";
$shortenedText = shortenStringWithDots($text, 20);
echo $shortenedText; // Output: "Lorem ipsum dolor..."

Сокращение строк с помощью многоточия — распространенное требование при разработке PHP. В этой статье мы рассмотрели три различных метода достижения этой функциональности. Используя функцию substr(), функцию mb_strimwidth()или пользовательскую функцию, вы можете легко обрезать строки и добавлять многоточия, когда это необходимо. Эти методы обеспечивают гибкость в зависимости от ваших конкретных требований, например обработку многобайтовых символов или сохранение границ слов.

Реализуя эти методы, вы можете обеспечить визуально привлекательный и удобный интерфейс, отображая краткие строковые представления, не жертвуя при этом важной информацией.

Не забудьте учитывать длину и контекст строки при выборе подходящего метода, а также любые конкретные требования для вашего конкретного случая использования.