Hallo,
habe ein badword filter im Netz gefunden und an meine Bedürfnisse anpassen wollen leider ist nicht so einfach
Also es ist der ganze Code mit Funktion selbst und ganz unten der Aufruf der Funktion. Und es gibt noch ein textfile(utf-8 kodiert) wo alle schlimmen wörter drinn stehen und zwar zeilenweise. Was noch zu beachten gibt, dass ich die "schlimmen Wörter" nicht mit sternchen ersetzen will, sondern nur prüfe und gleich beim ersten fund abbreche b.z.w negative Meldung ausgeben will. Wenn der ganzer badwords.txt durch ist und nichts gefunden wird dann soll positive meldung folgen. Es hängt vor allem an der foreach-Schleife da geht was schief, starre das ganze schon seit 2 Stunden an und verstehe nicht woran es lieg. Also bitte bitte... hilft mir
habe ein badword filter im Netz gefunden und an meine Bedürfnisse anpassen wollen leider ist nicht so einfach

Also es ist der ganze Code mit Funktion selbst und ganz unten der Aufruf der Funktion. Und es gibt noch ein textfile(utf-8 kodiert) wo alle schlimmen wörter drinn stehen und zwar zeilenweise. Was noch zu beachten gibt, dass ich die "schlimmen Wörter" nicht mit sternchen ersetzen will, sondern nur prüfe und gleich beim ersten fund abbreche b.z.w negative Meldung ausgeben will. Wenn der ganzer badwords.txt durch ist und nichts gefunden wird dann soll positive meldung folgen. Es hängt vor allem an der foreach-Schleife da geht was schief, starre das ganze schon seit 2 Stunden an und verstehe nicht woran es lieg. Also bitte bitte... hilft mir

PHP-Code:
<?php
function filterBadWords($str,$badWordsFile) {
if(!is_file($badWordsFile)) {
echo "ERROR: file missing: ".$badWordsFile;
exit;
}
else {
$badWordsFH = fopen($badWordsFile,"r");
$badWordsArray = explode("\n", fread($badWordsFH, filesize($badWordsFile)));
fclose($badWordsFH);
}
foreach ($badWordsArray as $badWord) {
if(stripos(utf8_encode($str), $badWord)!==false)
{
return false;
}else {
return true;
}
}
}
?>
<?php
//$message = 'Ein Penner'; // jeweils zum testen
$message = 'Ein guter Mann'; //jeweils zum testen
// Function Call/Usage
if (filterBadWords($message,"badwords.txt") == 0) {
echo 'Message enthält keine badwords aus badwords.txt';
}
else
{
echo 'Message enthält mindestens 1 badword';
}
?>
Kommentar