Zend_Filter PregReplace in ini-Config

Heute hatte ich das Problem, dass die Config für ein Zend_Form-Formular in einer ini-Datei stehen musste. Dabei sollte auch PregReplace zum Einsatz kommen, um nichtgewollte Worte gegen Sternchen auszutauschen. Es gibt aber scheinbar kein Tutorial oder Beispiel für die Einbindung von Filtern per ini-Datei, bei denen man dem Filter Optionen hinzufügen kann. Man findet immer nur einfache Filter-Einbindungen ohne Optionen wie

[code lang=”bash” inline=”yes”]elements.nachricht.options.filters.bigger.filter = “StringToUpper”[/code]

zum Vergrößern aller Buchstaben.

Durch einiges Probieren mit den Kollegen und Durchforsten der Zend_Filter-Library, kamen wir dann auf folgendes:

[code lang=”bash” inline=”yes”]elements.nachricht.options.filters.badword.filter = “PregReplace”
elements.nachricht.options.filters.badword.options.match = “/(\bpoo\b|\bfuck\b|\bsuck\b)/i”
elements.nachricht.options.filters.badword.options.replace = “*****”[/code]

Man muss also nach dem selbstgewählten Namen des Filters, in meinem Fall “badword”, den verwendeten Filter mit “.filter” einbinden. Die Optionen werden mit “.options” ebenfalls direkt nach “badword” eingebracht. In der Option “match” steht dabei ein regulärer Ausdruck mit dem zu filternden Format und in “replace” die dafür vorgesehene Zeichenkette als Ersatz für die gefundenen Worte. “\b” markiert Wortanfänge und -enden. “i” steht dabei als caseinsensitive, also werden Groß- und Kleinschreibung ignoriert. Die Trennung der bösen Worte erfolgt per “|”.

Leave a Reply

Your email address will not be published.