Autor |
Nachricht |
PageStylist
Threadersteller
Dabei seit: 06.06.2006
Ort: Wuppertal
Alter: 42
Geschlecht:
|
Verfasst Fr 30.03.2007 12:21
Titel Probleme mit eregi-replace() (Badword-Filter) |
|
|
Also ich habe folgendes Problem und ich hoffe ihr könnt mir irgendwie helfen.
Das Problem ist das Suchmuster, die Badwords kommen aus einer Textdatei.
Das Suchmuster was ich im Moment benutze sieht so aus
$pattern = "(".$badwords[$i].")";
Nur leider funktioniert das nicht richtig.
Ein Beispiel:
$pattern = „man“;
$text = „Niemand“
Das Ergebnis ist dann Nie***d
Beispiel 2:
$pattern = „Arsch“;
$text = „Marsch“;
Das Ergebnis ist dann M*****, korrekter Weise sollte es aber Marsch bleiben.
Habt ihr Tipps wo ich gute Informationen über Suchmuster finde, oder hat vielleicht jemand ne Idee für mein Suchmuster. Über eure Hilfe wäre ich euch sehr dankbar.
Mit freundlichen Grüßen
Chris
|
|
|
|
|
Bonestruca
Dabei seit: 24.06.2002
Ort: S // KÜN
Alter: 37
Geschlecht:
|
Verfasst Fr 30.03.2007 18:06
Titel
|
|
|
mach doch beim pattern davor ein Leerzeichen rein.
$pattern = " Arsch";
Somit wird nur das aussortiert, das vor dem A keinen andren Buchstaben mehr hat. Je nach BadWort kannste das davor, dahinter und beides machen. 100% ausschalten kannste die "fehler" nicht, aber um einiges reduzieren.
// was mir gerade noch eingefallen ist, weiß nicht wie dein text vorformatiert ist, je nachdem musste eben das mit den entsprechenden andren Leerzeichen-Symbolen erstzen. Vllt. auch nur mit einem " ".
Zuletzt bearbeitet von Bonestruca am Fr 30.03.2007 18:08, insgesamt 1-mal bearbeitet
|
|
|
|
|
Anzeige
|
|
|
schachbrett
Dabei seit: 11.10.2006
Ort: Köln
Alter: -
Geschlecht:
|
Verfasst Fr 30.03.2007 20:41
Titel
|
|
|
Vor oder hinter dem Begriff sollte kein Buchstabe stehen! Hast du dich mal mit regulaeren Ausdruecken beschaeftigt?
|
|
|
|
|
rob
Dabei seit: 11.12.2003
Ort: ~/
Alter: 46
Geschlecht:
|
Verfasst Fr 30.03.2007 21:35
Titel
|
|
|
Mit regulären Ausdrücken kann man verdammt viel machen. Allerdings haben sie einen Nachteil: sie sind verdammt langsam.
Du solltest, wo immer es möglich ist, lieber mit String-Funktionen arbeiten als zu einem regulären Ausdruck zu greifen.
Und wenn du schon mit RegEx arbeitest, dann solltest du möglichst nicht die alten ereg-Funktionen nutzen, sondern besser die Perlkompatibeln Funktionen (, die mit preg_ anfangen) nehmen. Die sind bestimmt 5 bis 10 mal schneller.
http://www.php-faq.de/q/q-regexp-ereg.html
BTW: Wenn du Probleme mit RegEx oder den Funktionen hast, dann kannst du auch mal auf den Link da oben klicken.
Und dann schaust du dir links in der Navi-Leiste mal die einzelnen Punkte dort an. Da wirst du vermutlich alles finden, was du wissen mußt.
|
|
|
|
|
Benutzer 28377
Account gelöscht
Ort: -
|
Verfasst Sa 31.03.2007 11:34
Titel
|
|
|
Das eregi-replace einfach veraltet ist, steht auch im PHP-Handbuch
|
|
|
|
|
|
|
|
Ähnliche Themen |
php->eregi
php: wenn badword teil einer eingabe...
Javascript: replace
JS | replace - regex - br
Kleine Frage zu JS replace
Javascript suchen ersetzen / replace
|
|