Blacklist Funktion - PHP HTML JavaScript - Forum

 
Du musst Dich einloggen, um einen Beitrag zu schreiben Anmelden Registrieren


Registrieren? | Passwort vergessen??

Foren durchsuchen:


 






Minimum search word length is 4 characters – Maximum search word length is 84 characters
Wildcard benutzen:
*  stimmt mit einer Anzahl von Zeichen überein    %  stimmt genau mit einem Zeichen überein

Blacklist Funktion

BenutzerBeitrag

21:09
5. September 2011


nuelle

New Member
New Member

Beiträge 8

Ich möchte in eine Suchfunktion eine Blacklist einbinden und hab mir dazu folgendes überlegt:

$blacklist = array("badword1", "badword2", "badword3", "badword4");

if (in_array($keyword, $blacklist))
{
echo $keyword . " ist Blacklisted!<br/>\r\n";
}
else
{
echo $keyword . " ist Valide!<br/>\r\n";
}

Funktioniert auch soweit, solange die Badwords genau so vorkommen.
Wie muß ich den Code erweitern, um auch variationen der badwords mit abzudecken ?
Also "das badword1" … gibt es da irgendwie sowas mit "*badword1" oder so ?

15:50
6. September 2011


Brainstorm

Admin
Admin

Beiträge 46

Moin moin,

Du willst (wenn ich es richtig verstanden habe) überprüfen, ob ein String eine bestimmte Zeichenkette enthält.

Schau Dir mal den regulären Ausdruck preg_match an.

grüße

Der Glaube fängt an, wo das Wissen aufhört.

17:01
10. September 2011


Andy

New Member
New Member

Beiträge 3

Hallo,

ungetestet:

if (preg_match("#\b(" . str_replace("\*", ".*?", preg_quote($badword, '#')) . ")\b#i", $keyword)){
echo $keyword . " ist Blacklisted!<br/>\r\n";

}

Gruß Andy

22:51
10. September 2011


nanos

Deutschland

New Member
New Member

Beiträge 16

Hallo,

@Nülle,

ich kann dein Problem nicht verstehen. KA

Willst Du gesperrte Wörter dynamisch erkennen lassen?

Wer einschläft mit Popo der kratzt, der aufwacht mit Finger der stinkt.

20:15
13. September 2011


nuelle

New Member
New Member

Beiträge 8

Danke für eure Antworten und Sorry, das ich mich jetzt erst melde… hab viel Streß und kaum Zeit.

Nochmal wozu das ganze ist:

Ich hab eine Suchfunktion und möchte gern die Treffer zu diesen Badwords nicht anzeigen lassen, sondern stattdessen eine Textanzeige.

Die Lösung mit preg_match verarbeitet doch kein Array oder ?

22:48
13. September 2011


Brainstorm

Admin
Admin

Beiträge 46

Beitrag 22:49 – 13. September 2011 bearbeitet von Brainstorm


Hi Nülle,

Du müsstest Dein Badwordarray mit einer Schleife durchlaufen lassen.
Innerhalb der Schleife kannst Du ja die Begriffe miteinander vergleichen, oder Schalter setzen etc..

Pseudocode

$badwordarray; //enthält Daten aus der Datenbank, oder zb. einer Textdatei

//Array durchlaufen
for($i=0; $i < count($badwordarray);$i++){

// jetzt nehme ich mal den ungetesteten Code von Andy

if (preg_match("#\b(" . str_replace("\*", ".*?", preg_quote($badwordarray[$i], '#')) . ")\b#i", $keyword)){
echo $keyword . " ist Blacklisted!<br/>\r\n";
break;
}
}

Nur mal als Beispiel. Du hast doch sicher eine lokale Testumgebung?.

Vielleicht ist die Funktion stristr() besser für Dein Vorhaben geeignet, als preg_match http://www.cck-group.net/wp-content/forum-smileys/streicheln.gif.

gruß

Der Glaube fängt an, wo das Wissen aufhört.

12:05
15. September 2011


nuelle

New Member
New Member

Beiträge 8

So gehts jetzt…

$badwordarray = array("badword1", "badword2", "badword3");

for($i=0; $i < count($badwordarray);$i++){

if (preg_match("/(".str_replace("\*",".*?",preg_quote($badwordarray[$i],'#')).")/i",$keyword)){
echo $keyword . " ist Blacklisted!<br/>\r\n";
break;
}
}

Er unterscheidet Groß- und Kleinschreibung und erkennt auch Wortvariationen..

Ich danke euch für eure Hilfe und Denkanstöße…

20:10
15. September 2011


Brainstorm

Admin
Admin

Beiträge 46

Beitrag 20:53 – 22. September 2011 bearbeitet von Brainstorm


Bis zum nächsten http://www.cck-group.net/wp-content/forum-smileys/krass.gif Problem.

Brainstorm

Der Glaube fängt an, wo das Wissen aufhört.

Keine Tags


Infos zum CCK GROUP BLOG Forum

Zeitzone:Etc/GMT-2

Die meisten Nutzer gleichzeitig online: 20

Im Moment online:
6 Gäste

Aktuell im Thema unterwegs:
1 Gast

Forumstatistiken:

Gruppen: 6
Foren: 17
Themen: 26
Beiträge: 95

Mitglieder:

Es gibt 19 Mitglieder

Es gibt 1 Admin

Aktivste Mitglieder:

nanos – 16
4no1 – 9
nuelle – 8
Mr.On – 7
Feeder – 5
Rivalkiller – 4

Neueste Mitglieder: niesul14, legendvpn, woodystar, diesa, Hieine, CoolK

Admins: Brainstorm (46 Beiträge)