加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 使用MySQL检测垃圾邮件发送者

发布时间:2020-12-13 16:43:24 所属栏目:PHP教程 来源:网络整理
导读:我看到越来越多的用户在我的网站上注册,只是向其他用户发送重复的垃圾邮件.我添加了一些服务器端代码来检测具有以下 mysql查询的重复消息: SELECT count(content) as msgs_sent FROM messages WHERE sender_id = '.$sender_id.' GROUP BY content having co
我看到越来越多的用户在我的网站上注册,只是向其他用户发送重复的垃圾邮件.我添加了一些服务器端代码来检测具有以下 mysql查询的重复消息:

SELECT count(content) as msgs_sent 
    FROM messages 
   WHERE sender_id = '.$sender_id.' 
GROUP BY content having count(content) > 10

该查询运行良好,但现在他们通过更改其消息中的一些charctersr来解决这个问题.有没有办法用MySQL检测这个或者我是否需要查看从MySQL返回的每个分组,然后使用PHP来确定相似性的百分比?

有什么想法或建议吗?

解决方法

全文匹配

您可以看一下类似于MATCH示例here的实现:

mysql> SELECT id,body,MATCH (title,body) AGAINST
    -> ('Security implications of running MySQL as root') AS score
    -> FROM articles WHERE MATCH (title,body) AGAINST
    -> ('Security implications of running MySQL as root');
+----+-------------------------------------+-----------------+
| id | body                                | score           |
+----+-------------------------------------+-----------------+
|  4 | 1. Never run mysqld as root. 2. ... | 1.5219271183014 |
|  6 | When configured properly,MySQL ... | 1.3114095926285 |
+----+-------------------------------------+-----------------+
2 rows in set (0.00 sec)

所以对于你的例子,也许:

SELECT id,MATCH (content) AGAINST ('your string') AS score
FROM messages 
WHERE MATCH (content) AGAINST ('your string')
    AND score > 1;

请注意,要使用这些函数,您的内容列必须是FULLTEXT索引.

这个例子中得分是多少?

这是一个相关价值.它通过下面描述的过程计算:

Every correct word in the collection and in the query is weighted
according to its significance in the collection or query.
Consequently,a word that is present in many documents has a lower
weight (and may even have a zero weight),because it has lower
semantic value in this particular collection. Conversely,if the word
is rare,it receives a higher weight. The weights of the words are
combined to compute the relevance of the row.

从documentation页面.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读