Php 文字过滤器,在发送内容时替换

Php 文字过滤器,在发送内容时替换,php,Php,所以我知道ob_start()会阻止Web服务器在调用ob_flush()之前发送任何内容,但是在flush()之前我如何替换页面上的所有脏话呢?如果我正确理解您需要: 您不应该在整个页面中这样做,因为这很难分析。(例如,如果有人用变量“ck”和“f”编写JS,你真的会弄乱他们的产品f*ck?)在HTML中,你很容易被fK欺骗;去你妈的 而是在显示(或更好:保存)用户生成的内容(如评论)时设置一个过滤器,并仅对其进行过滤。这是一个相当具体的问题,因此您应该提供一些代码,以提供准确答案的上

所以我知道ob_start()会阻止Web服务器在调用ob_flush()之前发送任何内容,但是在flush()之前我如何替换页面上的所有脏话呢?

如果我正确理解您需要:


您不应该在整个页面中这样做,因为这很难分析。(例如,如果有人用变量“ck”和“f”编写JS,你真的会弄乱他们的产品f*ck?)在HTML中,你很容易被fK欺骗;去你妈的


而是在显示(或更好:保存)用户生成的内容(如评论)时设置一个过滤器,并仅对其进行过滤。

这是一个相当具体的问题,因此您应该提供一些代码,以提供准确答案的上下文,否则人们可能会对您的问题投反对票。在任何情况下,对于字符串过滤,您应该在PHP函数引用中查找“<代码> STRRE”()和<代码> STRYRePACTE()/<代码>,或者可能更准确地说“代码> StryIrPi饰()/<代码>,因为您必须考虑字符情况。还有可能会有其他用户“黑客”来逃避你的过滤。你怎么看脏话?你不能取代所有脏话。有很多方法可以绕过这些黑名单。str_replace()区分大小写吗?如果是,什么是不区分大小写的替代方案?在这种情况下,你需要使用str_ireplace()。谢谢,但我不是在寻找一个严格的单词过滤器,而是一个让用户知道他们不阅读规则就不能骂人的过滤器(他们中的大多数人不会)。我接受选择OP来满足于不太可靠的解决方案,但我坚持认为,在其他情况下,意图可能并不重要。他们是想实施严格的过滤,还是仅仅显示警告或撤销一个社交点;关键是,如果他们不在任务的检测部分使用可靠的处理,那么他们将有更多的bug。对于HTML,至少应该是DOMDocument::loadHTML()@建议的关键仍然是,当用户发送你想要分析的文本时,你应该采取行动,并且不要再分析了!
ob_start();
echo "some text here and here\r\n";
echo "some second text here and here\r\n";
$out = ob_get_clean();
echo $out."\r\n\r\n";
echo str_replace('here', 'there', $out);