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 中保持聊天框干净!
可能你能做的最好的事情是:
/[\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 的内容。