TrashNotes

2025-04-16 09:37:40
принимает входной текст, обрабатывает ссылки и изображения, и возвращает обработанный текст
<?php
function processLinks($text) {
    // Экранирование HTML-символов
    $text = htmlspecialchars($text, ENT_QUOTES, 'UTF-8');

    // Регулярное выражение для поиска ссылок на изображения
    $image_pattern = '/https?:\/\/\S+\.(?:jpg|jpeg|png|gif|bmp|webp)/i';

    // Обработка изображений: заменяем ссылки на изображения тегами <img>
    $text = preg_replace_callback($image_pattern, function($matches) {
        $url = $matches[0];
        return "<img src='$url' alt='Image' style='max-width:640px; height:auto;'>";
    }, $text);

    // Регулярное выражение для поиска всех остальных ссылок
    $link_pattern = '/https?:\/\/(?:[-\w]+\.)+[a-z]{2,}(?:\/[-\w\/?.=&%#]*)?(?<![\.,!?)\]}])/i';

    // Обработка остальных ссылок: оборачиваем их в тег <a> с target="_blank"
    $text = preg_replace_callback($link_pattern, function($matches) use ($image_pattern) {
        $url = $matches[0];

        // Проверяем, является ли ссылка изображением
        if (preg_match($image_pattern, $url)) {
            return $url; // Если это изображение, оставляем как есть (уже обработано выше)
        }

        // Добавляем тег <a> для открытия ссылки в новой вкладке
        return "<a href='$url' target='_blank' rel='noopener noreferrer'>$url</a>";
    }, $text);

    return $text;
}
?>
← Previous Next →
Back to list