Code nochmal kommentiert:
<?php
function badword ($haystack, $needle) {
$is_in = FALSE;
if (is_array ($needle)) { // Es wird ueberprueft ob ein mehrere Badwords (Array) oder ein einziges Badword angeben ist
foreach ($needle as $element) { // Mit der foreach-Schleife werden alle Array-Elemente durchlaufen
if (strpos ($haystack, $element)) { // Es wird mit strpos ueberprueft ob das Element (Badword) im Text ist
$is_in = TRUE; // Rueckgabevariable wird ggf. auf TRUE gesetzt (wurde gefunden)
break;
}
}
} else {
if (strpos ($haystack, $needle)) { // Selbes Spiel wie oben nur mit einem Badword
$is_in = TRUE;
}
}
return $is_in;
}
?>
Hier jetzt 2 Beispiele.....
Unser Text :
Wer andern einen Porno dreht hat ein Pornodrehgerät, du Hund!
Wir definieren als Badwords : Porno, dreht und Hund
<?php
$text = 'Wer andern einen Porno dreht hat ein Pornodrehgerät, du Hund!'; // Wir definieren unseren Text
$badwords = array ('Porno', 'dreht', 'Hund'; // Wir definieren die Badwords
if (badword ($text, $badwords) == TRUE) { // Wir pruefen den Rueckgabewert der Funktion
echo 'Eines der Woerter in $badwords ist im Text vorhanden';
} else {
echo 'Keines der Woerter in $badwords ist im Text vorhanden';
}
?>
Ich hoffe es ist so jetzt verständlich. Eigentlich hätte auch das hier gereicht :
strpos
Meine Funktion wird nämlich genauso aufgerufen.