Всем привет! Хочу сделать так, чтобы пользователи могли делиться ссылками в комментариях. Именно так, чтобы достаточно было просто вставить ссылку в текст, а при выводе она автоматически стала активной, но с оговоркой, что только те ссылки, которые ведут на текущий домен.
Как это реализовывать?
После добавления комментария заменять ссылки с помощью preg_replace? Но как потом защититься от xss атаки, ведь использовать htmlspecialchars уже не получится? Либо я не туда копаю...
Еще проблема, что в тексте могут быть ссылки в тегах
<img>
например код:
$item = ' текст текст <img src="https://site.ru/news/411451389"><br> текст текст текст текст: https://site.ru/news/411451389, текст текст <br> текст текст site.ru/news/411451389?sdfsdf=123 текст текст текст';
$regex = '~((https?://)?([-\w]+\.[-\w\.]+)+\w(:\d+)?(/([-\w/_\.\,]*(\?\S+)?)?)*)~';
echo preg_replace($regex, '<a href="$1">$1</a>', $item);
вполне себе не плохо работает, но он заменяет адрес и изображения и видео в тегах, а нужны только чистые ссылки не находящиеся где-то в тегах