Autor |
|
|
Robert |
|
|
|
|
Ich will mal sehen ob die l e er ta s te nva ri a n te funktioniert
FSK 18
bitte nicht nach unten scrollen wenn du jünger bist
1M on st erb a c ke
2 Sp er m arut s che
3 T ef l o ng e sic ht
4 S oh n e i n er b lu tp is s e n d en Ha fe nh u re
5 T r ats ch t a nt e (So ein geiles wort)
6 P e ni s
OOPS!Nix!!!!Da muss man ja was tun
Der Post wurde 1 mal editiert, zuletzt von Robert am 05.08.2005 - 15:34.
|
Beitrag vom 05.08.2005 - 15:32 |
|
|
Zulu The Preacher |
|
|
|
|
Mit Regular Expressions sollte dies leicht möglich sein. Nach jedem Buchstaben folgt eine undefinierte Anzahl von Leerzeichen, aber eventuell auch gar keins. Man müsste nur eine schnelle Funktion finden, die die Wörter aus der Badwords-Liste in Regular Expressions umwandelt.
|
Beitrag vom 05.08.2005 - 20:09 |
|
|
|
Tech-Admin
795 Beiträge - Foren-Freak
|
|
|
Man sollte nich die Wörter zensieren, sondern die Folge gewisser Buchstaben wobei man die Leerzeichen ignoriert.
Ich finds trotzdem schade dass man meine Liste nich mehr sieht....
Der Post wurde 1 mal editiert, zuletzt von Carver`s Friend am 05.08.2005 - 20:17.
|
Beitrag vom 05.08.2005 - 20:11 |
|
|
Zulu The Preacher |
|
|
|
|
Die Regular Expression für Beispiel 6 von Robert müsste lauten:
[Pp][ ]*[Ee][ ]*[Nn][ ]*[Ii][ ]*[Ss]
Dies würde alle Versionen dieses Wortes einbeziehen, egal wie sie geschrieben wurden und egal wieviele oder ob überhaupt Leerzeichen verwendet wurden.
Der Post wurde 1 mal editiert, zuletzt von Zulu The Preacher am 05.08.2005 - 20:20.
|
Beitrag vom 05.08.2005 - 20:19 |
|
|
|
Tech-Admin
795 Beiträge - Foren-Freak
|
|
|
Dann bring das den Admins bei und unser Forum ist sauberer
|
Beitrag vom 05.08.2005 - 20:24 |
|
|
Zulu The Preacher |
|
|
|
|
Mir ist aufgefallen das die Badwords-Funktion wohl case-insensitive arbeitet, d. h. Groß- oder Kleinschreibung ignoriert. Geht man von dieser Tatsache aus, entstehen einfachere Regular Expressions (wieder Beispiel 6 von Robert):
p[ ]*e[ ]*n[ ]*i[ ]*s
Diese lassen sich in PHP so erzeugen:
<?
$wort = "*****";
$regex = implode("[ ]*", preg_split("//", $wort, -1, PREG_SPLIT_NO_EMPTY));
?>
Das Wort wird zuerst in seine Buchstaben zerlegt und wird dadurch zu einem Array. Dieser Array wird wieder in einen String konvertiert, wobei das Trennzeichen der Ausdruck "[ ]*" ist. Somit entsteht exakt die gleiche Regular Expression wie oben.
Sollen mehrere Wörter zu einer Regular Expression verbunden werden (z. B. Beispiel 4 von Robert), dann sollten die doppelten "[ ]*" modifiziert werden:
<?
$wort = "******* ******* *******";
$regex = str_replace("[ ]* [ ]*", "[ ]*", implode("[ ]*", preg_split("//", $wort, -1, PREG_SPLIT_NO_EMPTY)));
?>
EDIT: Die Badwords-Funktion wäre dann immer noch nicht perfekt, denn Strings in Anführungszeichen werden nicht gefunden.Daher habe ich die Wörter aus den Beispielen, die ungefiltert angezeigt wurden, durch Sterne ersetzt, um die Jüngeren zu schonen.
EDIT: Will man auch Kombinationen mit Bindestrichen untersagen, wie z.B. "Fahr-zeug", so muss man nur statt "[ ]*" den String "[ -]*" verwenden.
Der Post wurde 5 mal editiert, zuletzt von Zulu The Preacher am 05.08.2005 - 21:53.
|
Beitrag vom 05.08.2005 - 21:17 |
|
|
Chilli-Kaese-Fritten |
|
|
|
|
Zulu *rechtgeb*
ja was soll ich dazu noch sagen anscheinend kennst du dich gut mit php aus oder mit dem coden hast du vieleicht ein paar buch tipps bin immer dankbar für ein paar tips
|
Beitrag vom 05.08.2005 - 22:59 |
|
|
|
Tech-Admin
795 Beiträge - Foren-Freak
|
|
|
Hoffentlich kam des jetzt bei den Admins an, weil ich kapier dafon nich wirklich was
|
Beitrag vom 05.08.2005 - 23:28 |
|
|
Zulu The Preacher |
|
|
|
|
Zunächst ist natürlich wichtig wie die Badwords tatsächlich gespeichert werden. In einer Textdatei, oder in einer Datenbank? Olympweb scheint ja MySQL zu unterstützen, das würde einiges vereinfachen.
Dann müssten die Badwords in ihre Regular Expressions konvertiert und diese gespeichert werden.
Nun patcht man den PHP-Code der Badwords-Funktion, sodass sie die Regular Expressions gegen den auszugebenen Text testet. Wird eine Übereinstimmung festgestellt, so wird statt dem Original eine Anzahl von Sternen angezeigt.
Als letztes patcht man die Funktion, die die Badwords hinzufügt bzw. administriert, sodass diese automatisch Regular Expressions verwendet.
Damit wäre das Ganze fertig und das Forum um einiges leichter sauber zu halten.
@Chilli-Kaese-Fritten:
Nun, ich habe mir PHP komplett selbst angeeignet. Dazu benötigt man im Prinzip nur eine Referenz über die Funktionen und wie man diese verwendet. Empfehlen kann ich Dir vor allem:
http://de.php.net/manual/de/index.php
Wann immer du Informationen brauchst, welche Argumente eine Funktion braucht, brauchst du nur ihren Namen und evtl. PHP in Google einzutippen.
|
Beitrag vom 06.08.2005 - 09:15 |
|
|
tino3 |
|
|
|
|
die Zensur find ich ziemlich scheiße.bringt doch nix...
|
Beitrag vom 06.08.2005 - 11:27 |
|
|
Zulu The Preacher |
|
|
|
|
Zitat Original geschrieben von tino3
die Zensur find ich ziemlich scheiße.bringt doch nix... |
Doch, sie führt dazu, dass für Jüngere ungeeignete Aussagen ausgeblendet werden, was durchaus sinnvoll ist. Ironischerweise hast Du diese Aussage schon bestätigt und damit deine Aussage selbst ad absurdum geführt.
Der Post wurde 3 mal editiert, zuletzt von Zulu The Preacher am 06.08.2005 - 15:38.
|
Beitrag vom 06.08.2005 - 15:03 |
|
|
|
Tech-Admin
795 Beiträge - Foren-Freak
|
|
|
Zitat Original geschrieben von Zulu The Preacher
Ironischerweise hast Du diese Aussage schon bestätigt und damit deine Aussage selbst ad absurdum geführt. |
Ja, die Zensur zeigt ihm was sie von seiner Aussage hält..... :lol: :lol:
|
Beitrag vom 06.08.2005 - 16:25 |
|
|
|
1867 Beiträge - Postingschinder
|
|
|
Solange nur "Bad Words" zenisiert werden und nicht die inhalte der texte. Aber in meiner Sig ist das Zensieren von Bad Words vernoten, sonst wäre die Gesamtaussage nicht mher zu erkennen.
|
Beitrag vom 06.08.2005 - 16:47 |
|
|
|
Tech-Admin
795 Beiträge - Foren-Freak
|
|
|
Zitat Original geschrieben von Dark Link
Aber in meiner Sig ist das Zensieren von Bad Words vernoten, sonst wäre die Gesamtaussage nicht mher zu erkennen. |
Deswegen schreibst du nich Arschloch sondern A.rschloch.....
Bei mir geht der Sinn in der Signartur durch die Zensur nich verloren
|
Beitrag vom 06.08.2005 - 16:49 |
|
|
Zulu The Preacher |
|
|
|
|
Meine bisherigen Ausführungen waren nicht ganz korrekt, aber dafür ist die Sache jetzt fertig programmiert. Ich habe zwei PHP-Includes geschrieben, die die Regular Expressions in jede beliebige Struktur einbinden können, und konnte dabei die Funktionsweise viel einfacher gestalten als es vorher aussah, denn die Umwandlungen von Strings in Arrays und zurück entfallen.
Ich hoffe, dass bald einer der Admins über das Vorhaben entscheiden wird.
|
Beitrag vom 06.08.2005 - 20:15 |
|