PHP проверяет, содержит ли строка URL без http: // - PullRequest
2 голосов
/ 24 ноября 2011

Как лучше всего найти, если строка содержит URL-адрес?

Я пишу чат-чат и мне нужно запретить публикацию URL-адресов в нем ...

if(preg_match('/[a-zA-Z]+:\/\/[0-9a-zA-Z;.\/?:@=_#&%~,+$]+/', $clean_message, $matches))
{
die('INVALID!');
}

, кажется, делает трюк для URL-адресов, которые содержат http: //, но мне также нужно иметь возможность запретить URL-адреса, такие как youtube.com, а также если опубликован ipaddress и т. д.

Мне нужно сохранить окно чатаочистить от пользователей спам-ссылки!

1 Ответ

4 голосов
/ 24 ноября 2011

Вероятно, лучшее, что вы можете сделать, это что-то вроде:

/[\w\d\.]+\.(com|org|ca|net|uk)/

и добавьте все другие распространенные суффиксы.Выполнение чего-то вроде:

/[\w\d\.]+\.[\w\d]{1,3}/

может быть слишком общим, но может охватить почти все, что выглядит как URL.

...