如何通过PHP删除帖子中令人反感的单词?

net*_*ter 5 html php

假设"xyza"是一个坏词.我正在使用以下方法取代令人反感的词汇 -

$text = str_replace("x***","(Offensive words detected & removed!)",$text);
Run Code Online (Sandbox Code Playgroud)

此代码将xyza替换为"(检测到并删除了令人反感的词!)".

但问题是"案例"如果有人输入XYZA我的代码无法检测到它.怎么解决?

Ble*_*der 11

无论您做什么,用户都会找到绕过您的过滤器的方法.他们将使用unicode字符(?ss例如,使用西里尔字符,?并且不会被任何正则表达式解决方案捕获).他们将使用空格,美元符号,星号,无论你还没有抓住它们.

如果家庭友好对您的申请至关重要,请让某人在内容上线之前对其进行审核.否则,添加一个标记功能,以便其他人可以标记令人反感的内容.更好的是,使用某种机器学习或贝叶斯过滤器来自动标记可能令人反感的帖子并让人类手动检查它们.人们比计算机更好地阅读人类语言.


Bor*_*ora 0

使用str_ireplace函数,str_replace() 的不区分大小写版本

$text = str_ireplace("flip","(Offensive words detected & removed!)", $text);
Run Code Online (Sandbox Code Playgroud)

  • @ButtleButkus:我不认为孩子们在空闲时间浏览 StackOverflow。 (3认同)
  • 为什么一个提出删除冒犯性词语的帖子本身就有一个冒犯性词语? (2认同)
  • @ØHankyPankyØ 否则你如何展示效果?如果你把“f***”放在那里,未来的用户如何知道它不是字面上的“f***”? (2认同)
  • @ØHankyPankyØ 这是 Stack Overflow 政策禁止的还是什么?这个网站是幼儿园学生使用的吗?您的编辑基本上破坏了代码(一开始就不好)。 (2认同)