mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Sa 20.04.2024 01:55 Benutzername: Passwort: Auto-Login

Thema: Probleme mit eregi-replace() (Badword-Filter) vom 30.03.2007


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> Probleme mit eregi-replace() (Badword-Filter)
Autor Nachricht
PageStylist
Threadersteller

Dabei seit: 06.06.2006
Ort: Wuppertal
Alter: 42
Geschlecht: Männlich
Verfasst Fr 30.03.2007 12:21
Titel

Probleme mit eregi-replace() (Badword-Filter)

Antworten mit Zitat Zum Seitenanfang

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
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Bonestruca

Dabei seit: 24.06.2002
Ort: S // KÜN
Alter: 37
Geschlecht: Männlich
Verfasst Fr 30.03.2007 18:06
Titel

Antworten mit Zitat Zum Seitenanfang

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
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
schachbrett

Dabei seit: 11.10.2006
Ort: Köln
Alter: -
Geschlecht: Männlich
Verfasst Fr 30.03.2007 20:41
Titel

Antworten mit Zitat Zum Seitenanfang

Vor oder hinter dem Begriff sollte kein Buchstabe stehen! Hast du dich mal mit regulaeren Ausdruecken beschaeftigt?
  View user's profile Private Nachricht senden
rob

Dabei seit: 11.12.2003
Ort: ~/
Alter: 46
Geschlecht: Männlich
Verfasst Fr 30.03.2007 21:35
Titel

Antworten mit Zitat Zum Seitenanfang

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.
  View user's profile Private Nachricht senden
Benutzer 28377
Account gelöscht


Ort: -

Verfasst Sa 31.03.2007 11:34
Titel

Antworten mit Zitat Zum Seitenanfang

Das eregi-replace einfach veraltet ist, steht auch im PHP-Handbuch Lächel
 
 
Ä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
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.