Blacklist erstellen

supercat1510

Erfahrenes Mitglied
Ich versuche eine Funktion zu erstellen, welche String's nach bestimmten Worten aus einer Blacklist durchsucht.

PHP:
$blacklist = array ('*wort1', '*wort2*, 'wort3*');

Jetzt würde ich gerne mit Hilfe von preg_match prüfen in welchem String eines dieser Wörter vorhanden ist und dann einen Fehler zurückliefert der die Funktion abbricht.

Mein Problem ist jetzt, dass ich mit den Suchmustern von preg_match noch nicht so gut zurecht komme also bräuchte ich die Muster für:

Suche ein Wort das mit ... endet
Suche ein Wort das ... ist oder beinhaltet
Suche ein Wort das mit ... beginnt

Kann mir dabei jemand weiterhelfen?

Oder gibt es sogar schon irgendwo Online eine Klasse die genau das bereits macht? (Beim Googlen stoß ich immer nur auf Spam-Blacklists und keine Klassen)
 
Irgendwie macht das für mich gerade keinen Sinn. Wenn du ein Wort gefunden hast das mit $wort endet oder beginnt hast du doch auch gleichzeitig ein Wort gefunden das $wort beinhaltet. Was bedeuten würde das die einzige Regel die du brauchst, die wäre die überprüft ob ein wort $wort beinhaltet.
 
z.B.

*ang (Wort endet mit an)
------
Louyang (soll gefilter werden)
Angelsachse (nicht)
Fangen (nicht)

*ang* (Silbe im Wort
------
Fangen (soll gefiltert werden)
Louyang (nicht)
Angelsachse (nicht)

ang* (Beginnt mit ang)
------
Angelsachse (soll gefiltert werden)
Fangen (nicht)
Louyang (nicht)
 
Zuletzt bearbeitet:
Das Zeichen ^ Steht für Stringanfang. Das Zeichen $ für Stringende
Code:
// *ang
.*ang$

//ang*
^amg.*

//*ang*
.+ang.+
 
Ich will ja nicht kleinlich sein aber
.+ang.+ != Suche ein Wort das ... ist oder beinhaltet

.*and.* würde dem entsprechen aber dann wären wir wieder bei dem oben genannten Problem das man sich die beiden anderen Patterns sparen könnte.
 
Ich will ja nicht kleinlich sein aber
.+ang.+ != Suche ein Wort das ... ist oder beinhaltet

.*and.* würde dem entsprechen aber dann wären wir wieder bei dem oben genannten Problem das man sich die beiden anderen Patterns sparen könnte.

nope. er wünscht das folgende
*ang* (Silbe im Wort
------
Fangen (soll gefiltert werden)
Louyang (nicht)
Angelsachse (nicht)
mit * anstelle + findet er Louyang und Angelsachse
 
Ich versteh dich nicht.
Er will damit ja 'ang' alleine gar nicht finden. Er will Wörter finden die 'ang' in der mitte haben. Nicht am Anfang, ncioht am Ende und auch nicht solo
*ang* (Silbe im Wort
------
Fangen (soll gefiltert werden)
Louyang (nicht)
Angelsachse (nicht)
 
Naja wenn man seinen ersten beitrag ansieht dann will er das eben doch.
Suche ein Wort das ... ist oder beinhaltet
Ich geb dir ja Recht das es in den Beispielen wieder anders aussieht, aber da hat er das alleinstehende Wort auch garnicht aufgeführt.

Aber das hier führt ja zu nix. Supercat muss ja selber wissen ob ihm das genügt oder nicht.
Sorry für die kleinlichkeit ;)
 
Zurück