Webstatt.org - Community seit 2006 - 2012 (2024?)

text darf worte nicht enthalten

Avatar user-180
01.06.2006 17:53

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
}

may the force be with you. but mostly with me.
Avatar user-182
01.06.2006 17:54

http://de2.php.net/manual/en/function.strpos.php

Seid ihr auch schon wix'r? xD
Avatar user-180
01.06.2006 18:01

& wenn ich mehr als en string haben will?
also VEX, SORN, PIAGRA und so weiter?

may the force be with you. but mostly with me.
Avatar user-182
01.06.2006 18:40

if(<wort1+strpos> || <wort2+strpos> || <wort3+strpos> || ...) // gefunden
else // nö

Seid ihr auch schon wix'r? xD
Avatar user-317
01.06.2006 19:01

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 zwinkern

Avatar user-180
06.06.2006 20:13

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?)

may the force be with you. but mostly with me.
Avatar user-317
06.06.2006 20:57

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'zwinkern; // 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.

Avatar user-180
06.06.2006 21:34

DANKE!

may the force be with you. but mostly with me.
Avatar user-317
06.06.2006 22:46

No Problemo zwinkern