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

E3p*_*3pO 2 php string url contains preg-match

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

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

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

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

我需要从用户发送垃圾邮件的 url 中保持聊天框干净!

God*_*win 5

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

/[\w\d\.]+\.(com|org|ca|net|uk)/
Run Code Online (Sandbox Code Playgroud)

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

/[\w\d\.]+\.[\w\d]{1,3}/
Run Code Online (Sandbox Code Playgroud)

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