PHP检查字符串是否包含url而不包含http://.


PHP check if string contains url without http://

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

我正在写一个聊天框,需要拒绝在其中发布url…

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

似乎做的伎俩包含http://的url,但我也需要能够拒绝url,如youtube.com,如果ipaddress张贴等。

我需要保持聊天框从用户垃圾邮件url清洁!

也许你能做的最好的事情是:

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

并添加所有其他常用后缀。执行如下命令:

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

可能太通用了,但它几乎可以捕获任何看起来像URL的内容。