Zur Navigation

Schimpfwortfilter

1 Tom12

<?php
	$string = "test lol sex";
	$arr = explode(" ", $string);
	$datei = fopen("test.txt","r+");
	
	while(!feof($datei)) { 
		$zeile = fgets($datei,1000);
			if(strpos($zeile, $string) !== false) {
				$error = "true";
			}
	}
	echo $error;
	fclose($datei);  
?>
In der Textdatei sind alle möglichen Schimpfwörter, darunter auch jetzt fürs Beispiel das Wort "sex"
Wie kann ich einen Schimpfwortfilter erstellen, der einen String durchsucht ob ein Schimpfwort vorhanden ist, aber Wörter wie "Recht'sex'perte" nicht erkennt, nicht auf Groß und Kleinschreibung achtet usw.

Das was ich bis jetzt schon habe klappt leider nicht :/

11.09.2018 15:45

2 Jörg Kruse

Mit preg_match() kann man auch mit Wortgrenzen suchen, siehe im Manual Beispiel #2. Der Schalter /i sorgt zudem dafür, dass die Suche case insensitive ist

11.09.2018 16:58

3 Tom12

Wie wäre das Script denn dann aufgebaut?
Weil bis jetzt klappts ja noch nicht :/

12.09.2018 07:13

4 Jörg Kruse

Die Begriffe sind ja in $arr aufgeführt - das Array muss in einer Schleife durchlaufen werden

    while (!feof($datei)) {
        $zeile = fgets($datei,1000);
        foreach ($arr as $word) {
            if (preg_match('/\b' . $word . '\b/i', $zeile)) {
                // ...
            }
        }
    }

12.09.2018 10:57 | geändert: 12.09.2018 10:58

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]