Badword liste

Hi

1. Wofür soll diese dienen? (IRC-Script, Forum, etc)

2. Wo soll das Problem liegen? (Array mit Badwords einlesen, Text pro badword mit strpos() durchsuchen lassen, ggf. mit strreplace ersetzen). Reicht für nicht übermäßig besuchte Seiten völlig aus.

3. Logik, Google und SelfPHP helfen auch. :) (Soll weniger eine dumme Anmache als ein hilfreicher Tipp sein)

Ciao, Nino
 
Danke für den Hilfreichen Tipp, aber bis her ist noch nicht viel sinnvolles raus gekommen ;)

Die Badword liste soll für ein Forum werden. Ich will wenn einer einen Text Einträgt, dass der Text vorher durchsucht wird. Die Wörter sollen in einer MySQL Tabelle stehen in der immer das Badword steht und daneben das Wort zum ersetzen.

Ich weiß auch wie man es hin bekommt das man einen Text nach Wörtern durchsucht und diese dann ersetzt das ist ja nicht das Problem. Mein Problem ist das ich eine möglichkeit brauche mit der ich sowohl klein als auch groß geschriebene Wörter rausfiltern kann ohne das ich jedes Wort in der DB stehen habe. Also z.B. wenn ich in der DB löffel stehen habe sollen alle Wörter die so aussehen rausgefiltert werden: löffel, Löffel, LöFfEl, lÖfFeL usw.

Vieleicht habt ihr auch noch zusätzliche Ideen wie man die Liste verbessern kann um das Forum noch mehr vor deppen zu schützen die nichts besseres zu tun haben als irgendwelche schimpfwörter zu benutzen.

MfG mgd-one
 
Die Funktion strtolower() setzt einen String in Kleinbuchstaben. Dann prüfst du einfach alles so...Ist doch kein Problem?!
 
Doch wie ich muss ja den String auch wieder ausgeben und mit der Funktion wäre die groß und kleinschreibung im eimer!

Ich habe jetzt etwas hin gefrickelt das funktionert soweit falls jemand ne bessere lösung hat immer her damit!

PHP:
function badwordfilter($content)
{
  $badword = array (
	"fuck",
	"s e x",
	"h i t l er"
	);

  $filter = array (
	"f**k",
	"s*x",
	"h****r"
	);

  for ($n = 0; $n < count($badword); ++$n, next ($badword))
  {
    $search = $badword[$n];
	$replace = $filter[$n];
	$content = preg_replace("'$search'i", $replace, $content);
  }
  
  return $content;
}

$content = "Das ist ein Test für FUCK S e x  und Fuck  und  FUCKSEXH I T L E R";

echo badwordfilter($content);

Ausgabe:

Das ist ein Test für f**k s*x h****r und f**k s*x und h****r f**ks*xh****r

Die Wörter die auseinander geschrieben sind gehören natürlich zusammen ;)
 
Zurück