【发布时间】:2012-01-05 06:33:27
【问题描述】:
查找字符串是否包含 url 的最佳方法是什么?
我正在写一个聊天框,需要拒绝在其中发布 url...
if(preg_match('/[a-zA-Z]+:\/\/[0-9a-zA-Z;.\/?:@=_#&%~,+$]+/', $clean_message, $matches))
{
die('INVALID!');
}
似乎对包含 http:// 的网址有效,但我还需要能够拒绝 youtube.com 等网址以及是否发布了 IP 地址等。
我需要保持聊天框的清洁,防止用户发送垃圾网址!
【问题讨论】:
-
何必呢?你永远不会停止像 www [dot] youtube [dot] com 这样的东西。过滤自动垃圾邮件发布,然后放手?
-
我可以向这样的 URL 发送垃圾邮件: s t a c k o v e r f l o w 。 c o m
-
您可以像 Office Communicator 一样,只需将
_添加到已知的 Web 协议。喜欢:_http://www.example.com。然后由另一端的人来跟进。 -
@Brad, str_replace("[dot]", ".", $url);
-
@E3pO:无论你想出什么规则,我都能想出一个规避它的方法。
标签: php string url preg-match contains