Функция cot_build_url в Cotonti
Функция cot_build_url предназначена для того, чтобы создать ссылку (HTML-элемент) на заданный URL. Она также ограничивает длину URL (если это необходимо) и гарантирует, что URL будет валидным, добавляя схему (например, http:// или https://), если это не сделано.
/**
* Returns link for URL
*
* @param string $text URL
* @param int $maxlen Max. allowed length
* @return string
*/
function cot_build_url($text, $maxlen=64)
{
global $sys;
if (!empty($text))
{
if (mb_strpos($text, $sys['scheme'] . '://') !== 0)
{
$text = $sys['scheme'] . '://' . $text;
}
$text = htmlspecialchars($text);
$text = cot_rc_link($text, cot_cutstring($text, $maxlen));
}
return $text;
}
Разбор функции cot_build_url
Параметры функции:
$text — строка, представляющая URL. Это обязательный параметр, который передается в функцию.
$maxlen — максимальная допустимая длина строки URL. Если URL длиннее этого значения, то он будет обрезан. Значение по умолчанию — 64 символа.
Логика работы функции:
Проверка схемы URL:
Функция проверяет, начинается ли URL с заданной схемы (http:// или https://), используя $sys['scheme']. Если схема не указана, то она добавляется к URL.
Проверка происходит через функцию mb_strpos, которая ищет схему в начале строки.
Экранирование символов:
URL затем обрабатывается через htmlspecialchars, чтобы избежать проблем с безопасностью, например, с внедрением HTML-кода.
Создание ссылки:
Функция использует cot_rc_link, которая генерирует HTML-ссылку.
Для текста ссылки используется обрезанный вариант самого URL через функцию cot_cutstring. Это полезно, чтобы не отображать слишком длинный URL в интерфейсе. Если длина URL превышает $maxlen символов, то она будет обрезана.
Возврат результата:
Функция возвращает готовую ссылку.
Пример использования в контексте фреймворка Cotonti:
'POST_URL' => cot_build_url($post['url']),
Здесь:
$post['url'] — это URL поста, который будет передан в функцию.
Если URL не начинается с http:// или https://, то функция добавит нужную схему.
После этого функция создаст ссылку на этот URL, ограничив длину строки до 64 символов (по умолчанию).
Пример 1: Если URL www.example.com передается в функцию, она преобразует его в http://www.example.com, а потом создаст HTML-ссылку, например:
<a href="http://www.example.com">www.example.com</a>
Пример 2: Если URL длинный, например, http://www.example.com/some/long/path/to/resource, то функция обрежет его до http://www.example.com/some/long/path/to....
Пример возвращаемого значения:
Если входной URL: "www.example.com"
Результат работы функции:
<a href="http://www.example.com">www.example.com</a>
Если входной URL:
"www.example.com/this/is/a/really/long/path/that/exceeds/64/characters"
Результат работы функции:
<a href="http://www.example.com/this/is/a/really/long/path/that/exceeds/64/characters">http://www.example.com/this/is/a/really/long/path/that/exceeds/64...</a>
Применение в реальных сценариях:
Эта функция полезна, когда необходимо вывести URL в виде кликабельной ссылки с гарантией того, что он будет безопасным и не слишком длинным для интерфейса.
Она может быть использована для генерации ссылок на внешние сайты в постах, профилях пользователей или в любом другом месте, где нужно корректно отобразить URL с ограничением длины.
Комментарии (0)
Автор контента
Оффлайн
Administrator
Последняя авторизация: 05.07.2026 18:32
- Страница размещена: 22.01.2025 00:48
- Последнее обновление: 22.01.2025 00:48