guten tag ich habe ein ziemliches billig-problem, und ich habs gerade auf keiner codeschnipselseite gefunden, also
ich will sowas:
wenn der $text einige böse worte enthält, dann findet leider kein eintrag in die datenbank statt....
if(WASKOMMTHIERREIN???){
echo"leiderkein eintrag, blöder spambot";
}
else{
//eintrag
}
& wenn ich mehr als en string haben will?
also VEX, SORN, PIAGRA und so weiter?
if(<wort1+strpos> || <wort2+strpos> || <wort3+strpos> || ...) // gefunden
else // nö
Edit : Kleine Änderung vorgenommen...
Hab dir grad ne kleine Funktion geschrieben :
<?php
function badword ($haystack, $needle) {
$is_in = FALSE;
if (is_array ($needle)) {
foreach ($needle as $element) {
if (strpos ($haystack, $element)) {
$is_in = TRUE;
break;
}
}
} else {
if (strpos ($haystack, $needle)) {
$is_in = TRUE;
}
}
return $is_in;
}
?>
Funktionsaufruf und -weise wie bei strpos. Nur kannst bei $needle auch ein Array übergeben ;)
nnachdem ich den funtionsaufruf in der erklärung nur halb verstehe, kannst du mir mal ein beispiel für deine funktion geben (am besten mit mehreren badwords?)
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.
DANKE!
No Problemo ;)