Hallo,
Ich bin gerade dabei, ein Gästebuch mit einem Badwordfilter auszustatten. Ich stehe jetzt nur noch vor einem Problem. Der Überprüfung.
ich habe mich dafür entschieden, die Wörter einzeln zu prüfen, da ich es mittels soundex() machen will. Hat den Vorteil, dass auch verbotene Wörter erkannt werden, obwohl man diese mit -, usw unkenntlich machen will.
Hier hapert es aber. Ich bekomme die Wörter nicht so getrennt, dass am Ende noch alle Satzzeichen, Neulinien, usw vorhanden sind.
Diese Codes habe ich schon ausprbiert
Zudem habe ich dann noch vor, einen Zähler einzubauen, der mir die Ersetzungen mitzählt. Aber einer bestimmten Anzahl, soll der Beitrag erst nach Kontrolle durch einen Admin veröffentlicht werden können. Das werde ich aber selbst hinbekommen.
Ich hoffe, ihr könnt mir behilflich sein.
Danke schonmal an euch.
Ich bin gerade dabei, ein Gästebuch mit einem Badwordfilter auszustatten. Ich stehe jetzt nur noch vor einem Problem. Der Überprüfung.
ich habe mich dafür entschieden, die Wörter einzeln zu prüfen, da ich es mittels soundex() machen will. Hat den Vorteil, dass auch verbotene Wörter erkannt werden, obwohl man diese mit -, usw unkenntlich machen will.
Hier hapert es aber. Ich bekomme die Wörter nicht so getrennt, dass am Ende noch alle Satzzeichen, Neulinien, usw vorhanden sind.
Diese Codes habe ich schon ausprbiert
PHP:
#Hier fehlt alles, was noch dabei bleiben soll (Satzzeichen, usw)
$text = explode(' ',$text);
foreach($textWords as $key => $word)
{
if(in_array(soundex($word), $badwords))
{
$textWords[$key] = '--delete--';
}
}
############################
#Diese klappt nicht so ganz. Fehlen am Ende auch massenhaft Zeichen
$text = preg_replace("#(\s|)(\w){1,}(\s)#Ueis","\\1replaceit('\\2')\\3",$text);#Ich weis selbst, dass ich über RegExp noch einiges lernen muss ;)
function replaceit($text)
{
global $badwords;
if(in_array(soundex($text), $badwords))
{
return '--delete--';
}
else
{
return $text;
}
}
Ich hoffe, ihr könnt mir behilflich sein.
Danke schonmal an euch.