PHP检查字符串是否包含没有http://的URL

时间:2011-11-24 01:09:01

标签: php string url preg-match contains

查找字符串是否包含网址的最佳方法是什么?

我正在写一个聊天框,需要拒绝在其中发布网址...

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

似乎为包含http://的网址提供了诀窍,但我还需要能够拒绝youtube.com等网址以及是否发布了ipaddress等。

我需要保持聊天框免受用户垃圾邮件的干扰!

1 个答案:

答案 0 :(得分:3)

你可以做的最好的事情可能是:

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

并添加所有其他常见后缀。做类似的事情:

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

可能过于通用,但会抓住几乎任何看似URL的东西。