阻止用户发布网址的最佳方法

时间:2010-02-28 19:54:10

标签: php

我希望实现一个系统来从用户发布的文本中删除网址。

我知道没有完美的解决方案,用户仍会尝试以下内容:

www dot google dot com

所以我知道最终任何解决方案都会以某种方式存在缺陷......我真正希望做的就是减少做这件事的人数。

任何建议,来源或方法,

谢谢

2 个答案:

答案 0 :(得分:1)

有许多正则表达式模式匹配器here。其中一些非常复杂。 我建议运行多个可能是一个好主意。

答案 1 :(得分:0)

您需要准确定义要删除的内容。定义越严格,您将得到越多的误报。以下示例将删除任何包含3个字符的字符串,后跟句点,更多字母,另一个句点和2-4个字母:

$text = preg_replace('/[a-z]{3}\.[a-z]+\.[a-z]{2,4}/i', '', $text);

严格性的另一端可能是任何以句点结束的事物和2-4个字母(如.com):

$text = preg_replace('/[a-z]+\.[a-z]{2,4}/i', '', $text);

请注意,如果有人忘记在句子之间添加空格,后者会删除句子的最后一个单词,句号和句子的第一个单词。