Функция cot_cutstring в Cotonti

Разбор функции cot_cutstring
Функция cot_cutstring предназначена для обрезки строки до определенной длины и добавления троеточия ("...") в случае, если строка превышает эту длину.

Код функции

/**
 * Truncates a string
 *
 * @param string $res Source string
 * @param int $length Length
 * @return string
 */
function cot_cutstring($res, $length)
{
    if (mb_strlen($res) > $length) {
        $res = mb_substr($res, 0, ($length - 3)) . '...';
    }
    return $res;
}


Описание:

cot_cutstring(string $res, int $length)

Параметры:

$res (string) — исходная строка, которую необходимо обрезать.
$length (int) — максимальная длина, до которой нужно обрезать строку.


Логика работы:

Проверка длины строки:

if (mb_strlen($res) > $length) — с помощью функции mb_strlen (многоязычная версия функции strlen), которая корректно работает с многобайтовыми символами (например, с UTF-8), проверяется, превышает ли длина строки заданную максимальную длину $length.


Обрезка строки:

Если строка слишком длинная, она обрезается до нужной длины минус 3 символа (для троеточия), и добавляются троеточие ("..."):

$res = mb_substr($res, 0, ($length - 3)) . '...';


Здесь используется функция mb_substr, чтобы безопасно обрезать строку до заданной длины. Обрезанная строка затем дополняется троеточием.
Возврат результата:

Функция возвращает строку, которая либо была обрезана и дополнена троеточием, либо осталась без изменений, если ее длина меньше или равна заданной.


Пример работы функции:

$string = "This is a long string that will be truncated";
$maxLength = 20;

$result = cot_cutstring($string, $maxLength);
echo $result;

Результат:

This is a long...

еще

        'ADMIN_COMMENTS_TEXT_TRUNCATED' => htmlspecialchars(cot_cutstring(strip_tags($row['com_text']), 100)),

в шаблоне:

<p>{ADMIN_EXTENSIONS_DESCRIPTION|cot_cutstring($this, 60)}</p>


Объяснение:

Строка "This is a long string that will be truncated" изначально длиной 41 символов будет обрезана до 20 символов. После обрезки добавляется троеточие, и результат будет: "This is a long...".

Примечания:


Функция использует mb_strlen и mb_substr для работы с многобайтовыми символами, что делает ее более универсальной и подходящей для строк в кодировке UTF-8, в отличие от стандартных функций strlen и substr, которые могут неправильно обрабатывать многобайтовые символы.
Преобразует строку только в том случае, если ее длина больше заданного лимита. Если строка не превышает установленную длину, она остается неизменной.

2 минут чтения Administrator

Комментарии (0)

Комментарии отсутствуют
Добавление комментариев доступно только зарегистрированным пользователям

Автор контента

Administrator

Оффлайн

Administrator

Последняя авторизация: 05.07.2026 18:32

  • Страница размещена: 21.01.2025 12:05
  • Последнее обновление: 21.01.2025 12:05