Функция 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 minutes read Administrator

Comments (0)

No comments yet
Only registered users can post new comments

Article multicategories

Additional categories where this article is shown as similar.

Content author

Administrator

Offline

Administrator

Last logged: 2026-09-13 14:50

  • Page published: 2025-01-21 12:05
  • Last update: 2025-01-21 12:05