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;
}
?>
Back to list