@Yung_Cod3r

Содержит ли сообщение ссылку?

Есть бот, который "следит" За беседой, как ему узнать что какой-то пользователь отправил ссылку? (Чтобы применить наказание) Заранее спасибо!
  • Вопрос задан
  • 57 просмотров
Решения вопроса 2
HemulGM
@HemulGM
Delphi Developer, сис. админ
Ссылка - есть текст и также, преобразуется во вложение "link". Если не удалять текст ссылки после преобразования, то ссылка будет в тексте. Во вложении также легко можно получить ссылку из вложения.
5e480da35f2ff199523270.png
Ответ написан
@NedoKoder
С помощью регулярки. Итоговая регулярка зависит от запрещенных видов ссылок и может быть объемной. Один из вариантов:

$text_1 = 'Привет';
$text_2 = "Как дела?";
$text_3 = "Тут в тексте есть ссылка...вот она: http://mail.ru";
$re = '/(?<![\w\-]="|")(https?:\/\/[\w\-\.!~?&=+\*\'(),\/\#\:]+)((?!\<\/\w\>))*?/';

if(preg_match ($re, $text_1, $arr)){echo 'Найдено';}else{echo "Не найдено";} // Не найдено
if(preg_match ($re, $text_2, $arr)){echo 'Найдено';}else{echo "Не найдено";} // Не найдено
if(preg_match ($re, $text_3, $arr)){echo 'Найдено';}else{echo "Не найдено";} // Найдено
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы