Standard Filter KlassenZend Framework kommt mit einem Standardset von Filtern, welche bereits zur Verwendung fertig sind. AlnumZend_Filter_Alnum ist ein Filter welche nur alphabetische Zeichen und Ziffern zurückgibt. Alle anderen Zeichen werden unterdrückt. Unterstützte Optionen für Zend_Filter_AlnumDie folgenden Optionen werden für Zend_Filter_Alnum unterstützt:
Grundsätzliche VerwendungDas folgende Beispiel zeigt das Standardverhalten dieses Filters.
Das oben stehende Beispiel gibt 'Thisismycontent123' zurück. Wie man sehen kann werden alle Leerzeichen und auch die Klammern gefiltert.
Leerzeichen erlaubenZend_Filter_Alnum kann auch Leerzeichen erlauben. Das kann nützlich sein wenn man spezielle Zeichen von einem Text entfernen will. Siehe das folgende Beispiel:
Das obige Beispiel gibt 'This is my content 123' zurück. Wie man sieht werden nur die Klammern gefiltert wobei die Leerzeichen nicht angefasst werden. Am allowWhiteSpace im Nachhinein zu ändern kann man setAllowWhiteSpace und getAllowWhiteSpace verwenden. AlphaZend_Filter_Alpha ist ein Filter der den String $value zurückgibt, wobei er alle Zeichen entfernt die keine alphanummerischen Zeichen sind. Dieser Filter enthält eine Option welche Leerzeichen erlaubt. Unterstützte Optionen für Zend_Filter_AlphaDie folgenden Optionen werden für Zend_Filter_Alpha unterstützt:
Einfache VerwendungEin einfaches Beispiel der Verwendung ist anbei:
Das obige Beispiel gibt 'DasistmeinInhalt' zurück. Es sollte beachtet werden dass Leerzeichen und Klammern entfernt werden.
Leerzeichen erlaubenZend_Filter_Alpha kann auch Leerzeichen erlauben. Dies kann nützlich sein wenn man spezielle Zeichen von einem Statz entfernen will. Siehe das folgende Beispiel: Das oben stehende Beispiel gibt 'Das ist mein Inhalt ' zurück. Es ist zu beachten das alle Klammern, Doppelpunkte und Zahlen entfernt werden während die Leerzeichen bleiben. Um allowWhiteSpace nach der Instanziierung zu ändern kann die Methode setAllowWhiteSpace() verwendet werden. Um den aktuellen Wert von allowWhiteSpace zu erhalten kann die Methode getAllowWhiteSpace() verwendet werden. BaseNameZend_Filter_BaseName erlaubt es einen String zu filtern welcher den Pfad zu einer Daten enthält und gibt den Basisnamen dieser Datei zurück. Unterstützte Optionen für Zend_Filter_BaseNameEs gibt keine zusätzlichen Optionen für Zend_Filter_BaseName. Einfache VerwendungEin einfaches Beispiel der Verwendung ist nachfolgend zu finden:
Das gibt 'filename' zurück.
Das gibt 'filename.txt' zurück. BooleanDieser Filter ändert eine gegebene Eingabe auf einen BOOLEAN Wert. Das ist oft nützlich wenn man mit Datenbanken arbeitet oder wenn Formularwerte bearbeitet werden. Standardverhalten von Zend_Filter_BooleanStandardmäßig arbeitet dieser Filter indem er Eingabe auf BOOLEAN Werte castet; in anderen Worte, er arbeitet in ähnlicher Weise wie der Aufruf von (boolean) $value.
Dies bedeuetet dass Zend_Filter_Boolean ohne die Angabe einer Konfiguration alle Eingabetypen akteptiert und ein BOOLEAN zurückgibt wie man es durch Typcasting zu BOOLEAN erhält. Das Verhalten von Zend_Filter_Boolean ändernManchmal ist das Casten mit (boolean) nicht ausreichend. Zend_Filter_Boolean erlaubt es spezifische Typen zu konfigurieren welche konvertiert werden, und jene die ignoriert werden. Die folgenden Typen können behandelt werden:
Alle anderen angegebenen Werte geben standardmäßig TRUE zurück. Es gibt verschiedene Wege um auszuwählen welche der oben stehenden Typen gefiltert werden. Man kann ein oder mehrere Typen angeben und Sie hinzufügen, man kann ein Array angeben, man kann die Konstanten verwenden, oder man kann einen textuellen String angeben. Siehe die folgenden Beispiele:
Man kann auch eine Instanz von Zend_Config angeben um die gewünschten Typen zu setzen. Um Typen nach der Instanzierung zu setzen kann die Methode setType() verwendet werden. Lokalisierte Boolsche WerteWie vorher erwähnt erkennt Zend_Filter_Boolean auch die lokalisierten Strings für "Ja" und "Nein". Das bedeutet das man den Kunden in einem Formular nach "Ja" oder "Nein" in seiner eigenen Sprache fragen kann und Zend_Filter_Boolean die Antworten zu richtigen boolschen Werten konvertieren wird. Um das gewünschte Gebietsschema zu setzen kann man entweder die Option locale verwenden oder die Methode setLocale() verwenden. Casten ausschaltenMachmal ist es nützlich nur TRUE oder FALSE zu erkennen und alle anderen Werte ohne Änderung zurückzugeben. Zend_Filter_Boolean erlaubt dies indem die Option casting auf FALSE gesetzt wird. In diesem Fall arbeitet Zend_Filter_Boolean wie in der folgenden Tabelle beschrieben, die zeigt welche Werte TRUE oder FALSE zurückgeben. Alle anderen angegebenen Werte werden ohne Änderung zurückgegeben wenn casting auf FALSE gesetzt wird.
Das folgende Beispiel zeigt das Verhalten wenn die Option casting verändert wird: CallbackDieser Filter erlaubt es einem eigene Methoden in Verbindung mit Zend_Filter zu verwenden. Man muß keinen neuen Filter erstellen wenn man bereits eine Methode hat die diesen Job erledigt. Nehmen wir an das wir einen Filter erstellen wollen der einen String umdreht.
Wie man sehen kann ist es wirklich sehr einfach ein Callback zu verwenden um einen eigenen Filter zu definieren. Es ist auch möglich eine Methode zu verwenden, wenn diese innerhalb einer Klasse definiert ist, indem ein Array als Callback angegeben wird. Um den aktuell gesetzten Callback zu erhalten kann getCallback() verwendet werden, und um einen anderen Callback zu setzen kann setCallback() verwendet werden. Es ist auch möglich Standardparameter zu definieren, die der aufgerufenen Methode als Array übergeben werden wenn der Filter ausgeführt wird. Dieses Array wird mit dem Wert der gefiltert werden soll zusammengehängt. Wenn man die oben stehende Methodendefinition manuell aufrufen würde, dann würde das wie folgt aussehen:
Compress und DecompressDiese zwei Filter sind in der Lage Strings, Dateien und Verzeichnisse zu komprimieren und zu dekomprimieren. Sie verwenden Adapter und unterstützen die folgenden Kompressions Formate:
Jedes Kompressions Format hat unterschiedliche Fähigkeiten die anbei beschrieben sind. Alle Kompressions Filter können fast der selben Art und Weise verwendet werden, und unterscheiden sich primär in den vorhandenen Optionen und der Art der Kompression welche diese anbieten (beide bieten Algorithmen für Strings vs. Dateien vs. Verzeichnisse an) Generelle HandhabungUm einen Kompressions Filter zu erstellen muss man das Kompressions Format auswählen welches man verwenden will. Die folgende Beschreibung nimmt den Bz2 Adapter. Details für alle anderen Adapter werden nach dieser Sektion beschrieben. Diese zwei Filter sind grundsätzlich identisch, da Sie das gleiche Backend verwenden. Zend_Filter_Compress sollte verwendet werden wenn man Elemente komprimieren will, und Zend_Filter_Decompress sollte verwendet werden wenn man Elemente dekomprimieren will. Wenn man zum Beispiel einen String komprimieren will, müssen wir Zend_Filter_Compress instanziieren und den gewünschten Adapter angeben.
Um einen anderen Adapter zu verwenden muss dieser einfach im Constructor spezifiziert werden. Man kann auch ein Array von Optionen oder ein Zend_Config Objekt anbieten. Wenn man das tut sollte mindestens der Schlüssel "adapter" angegeben werden, und anschließend entweder der Schlüssel "options" oder "adapterOptions" (welches ein Array von Optionen ein sollte das dem Adapter bei der Instanziierung übergeben wird).
Fast die gleiche Verwendung ist die Dekomprimierung eines Strings. Wir müssen in diesem Fall nur den Dekompressions Filter verwenden.
Um einen komprimierten String zu erhalten muss der originale String angegeben werden. Der gefilterte Wert ist die komprimierte Version des originalen Strings.
Dekomprimierung funktioniert auf die gleiche Weise.
Ein Archiv erstellenDie Erstellung einer Archivedatei arbeitet fast auf die gleiche Weise wie die Komprimierung eines Strings. Trotzdem benötigen wir in diesem Fall einen zusätzlichen Parameter welcher den Namen des Archivs enthält welches wir erstellen wollen. Im obigen Beispeil wird der unkomprimierte String komprimiert, und wird dann in die angegebene Archiv Datei geschrieben.
Wenn man eine Datei komprimieren will, dann muss man den Namen der Datei mit dessen Pfad angeben. Man kann auch ein Verzeichnis statt einem Dateinamen spezifizieren. In diesem Fall wird das gesamte Verzeichnis mit allen seinen Dateien und Unterverzeichnissen in das Archiv komprimiert.
Ein Archiv dekomprimierenDie Dekomprimierung einer Archivdatei arbeitet fast wie dessen Komprimierung. Man muss entweder die Eigenschaft archive spezifizieren, oder den Dateinamen des Archivs angeben wenn man die Datei dekomprimiert.
Einige Adapter unterstützen die Dekomprimierung des Archivs in ein anderes Unterverzeichnis. In diesem Fall kann der Parameter target spezifiziert werden.
Bz2 AdapterDer Bz2 Adapter kann folgendes komprimieren und dekomprimieren:
Dieser Adapter verwendet PHP's Bz2 Erweiterung. Um die Komprimierung anzupassen unterstützt dieser Adapter die folgenden Optionen:
Alle Optionen können bei der Instanziierung oder durch Verwendung der betreffenden Methode verwendet werden. Zum Beispiel sind die zu 'Blocksize' gehörenden Methoden getBlocksize() und setBlocksize(). Man kann auch die setOptions() Methode verwenden welche alle Optionen als Array akzeptiert. Gz AdapterDer Gz Adapter kann folgendes komprimieren und dekomprimieren:
Dieser Adapter verwendet PHP's Zlib Erweiterung. Um die Komprimierung anzupassen unterstützt dieser Adapter die folgenden Optionen:
Alle Optionen können bei der Instanziierung oder durch Verwendung der betreffenden Methode verwendet werden. Zum Beispiel sind die zu 'Level' gehörenden Methoden getLevel() und setLevel(). Man kann auch die setOptions() Methode verwenden welche alle Optionen als Array akzeptiert. Lzf AdapterDer Lzf Adapter kann folgendes komprimieren und dekomprimieren:
Dieser Adapter verwendet PHP's Lzf Erweiterung. Es sind keine Optionen vorhanden um diesen Adapter anzupassen. Rar AdapterDer Rar Adapter kann folgendes komprimieren und dekomprimieren:
Dieser Adapter verwendet PHP's Rar Erweiterung.
Um die Komprimierung anzupassen unterstützt dieser Adapter die folgenden Optionen:
Alle Optionen können bei der Instanziierung oder durch Verwendung der betreffenden Methode verwendet werden. Zum Beispiel sind die zu 'Target' gehörenden Methoden getTarget() und setTarget(). Man kann auch die setOptions() Methode verwenden welche alle Optionen als Array akzeptiert. Tar AdapterDer Rar Adapter kann folgendes komprimieren und dekomprimieren:
Dieser Adapter verwendet PEAR's Archive_Tar Komponente. Um die Komprimierung anzupassen unterstützt dieser Adapter die folgenden Optionen:
Alle Optionen können bei der Instanziierung oder durch Verwendung der betreffenden Methode verwendet werden. Zum Beispiel sind die zu 'Target' gehörenden Methoden getTarget() und setTarget(). Man kann auch die setOptions() Methode verwenden welche alle Optionen als Array akzeptiert.
Zip AdapterDer Rar Adapter kann folgendes komprimieren und dekomprimieren:
Dieser Adapter verwendet PHP's Zip Erweiterung. Um die Komprimierung anzupassen unterstützt dieser Adapter die folgenden Optionen:
Alle Optionen können bei der Instanziierung oder durch Verwendung der betreffenden Methode verwendet werden. Zum Beispiel sind die zu 'Target' gehörenden Methoden getTarget() und setTarget(). Man kann auch die setOptions() Methode verwenden welche alle Optionen als Array akzeptiert. DecryptDieser Filter verschlüsselt beliebige Strings mit den angegebenen Einstellungen. Hierfür verwendet er Adapter. Aktuell gibt es Adapter für die Mcrypt und OpenSSL Erweiterungen von PHP. Für Details darüber wie man Inhalte verschlüsselt siehe den Encrypt Filter. Da die Grundlegenden Dinge beim Encrypt Filter behandelt werden, beschreiben wir hier nur mehr die zusätzlichen Methoden und Änderungen für die Entschlüsselung. Entschlüsselung mit McryptFür die Entschlüsselung von Inhalten die vorher mit Mcrypt verschlüsselt wurden muß man die Optionen wissen mit denen die Verschlüsselung aufgerufen wurde. Es gibt einen wichtigen Unterschied. Wenn man bei der Verschlüsselung keinen Vektor angegeben hat, muß man Ihn nach der Verschlüsselung des Inhalts holen indem die getVector() Methode am Verschlüsselungs-Filter aufgerufen wird. Ohne den richtigen Vektor ist man nicht in der Lage den Inhalt zu entschlüsseln. Sobald man alle Optionen angegeben hat ist die Entschlüsselung so einfach wie die Verschlüsselung.
Entschlüsselung mit OpenSSLEntschlüsselung mit OpenSSL ist so einfach die Verschlüsseln. Aber man benötigt alle Daten von der Person die den Inhalt verschlüsselt hat. Für die Entschlüsselung mit OpenSSL benötigt man:
Optional könnte es notwendig sein die Passphrase für die Entschlüsselung der Schlüssel selbst anzugeben indem die setPassphrase() Methode verwendet wird.
Zum Schluß kann der Inhalt entschlüsselt werden. Unser komplettes Beispiel für den vorher verschlüsselten Inhat sieht nun wie folgt aus.
DigitsGibt den String $value zurück und entfernt alle ausser Ziffern. Unterstützte Optionen für Zend_Filter_DigitsEs gibt keine zusätzlichen Optionen für Zend_Filter_Digits. DirEin angegebener String welcher den Pfad zu einer Datei enthält wird von dieser Funktion nur den Namen des Verzeichnisses zurückgeben. Unterstützte Optionen für Zend_Filter_DirEs gibt keine zusätzlichen Optionen für Zend_Filter_Dir. EncryptDieser Filter verschlüsselt beliebige Strings mit den angegebenen Einstellungen. Hierfür verwendet er Adapter. Aktuell gibt es Adapter für die Mcrypt und OpenSSL Erweiterungen von PHP. Da diese zwei Verschlüsselungs-Methodologien komplett unterschiedlich arbeiten, ist auch die Verwendung der Adapters unterschiedlich. Man muß die Adapter den man verwenden will, bei der Initialisierung des Filters auswählen. Um einen anderen Adapter zu setzen kann man auch setAdapter() verwenden, und die getAdapter() Methode um den aktuell gesetzten Adapter zu erhalten.
Verschlüsselung mit McryptWenn man die Mcrypt Erweiterung installiert hat, kann man den Mcrypt Adapter verwenden. Dieser Adapter unterstützt bei der Initialisierung die folgenden Optionen:
Wenn man einen String statt einem Array übergibt, wird dieser String als key Option verwendet. Man kan die Verschlüsselungswerte auch im Nachhinein mit den Methoden getEncryption() und setEncryption() erhalten und setzen.
Man kann den Verschlüsselungs Vektor durch den Aufruf von getVector() und setVector() erhalten und setzen. Ein engegebener String wird, je nach benötigter Vektorgröße des verwendeten Algorithmus, abgeschnitten oder aufgefüllt.
Verschlüsselung mit OpenSSLWenn man die OpenSSL Erweiterung installiert hat, kann man den OpenSSL Adapter verwenden. Dieser Adapter unterstützt bei der Instanziierung die folgenden Optionen:
Man kann öffentliche Schlüssel auch im Nachhinein mit den Methoden getPublicKey() und setPublicKey() erhalten und setzen. Auch der private Schlüssel kann mit den entsprechenden Methoden getPrivateKey() und setPrivateKey() geholt und gesetzt werden.
Wenn man auch die Schlüssel selbst verschlüsseln will, muß man eine Passphrase mit der setPassphrase() Methode angeben. Wenn man Inhalte entschlüsseln will, die mit einer Passphrase verschlüsselt wurden, muß man nicht nur den öffentlichen Schlüssel, sondern auch die Passphrase um den verschlüsselten Schlüssel zu entschlüsseln.
Zum Schluß muß man, wenn OpenSSL verwendet wird, dem Empfänger den verschlüsselten Inhalt, die Passphrase, wenn eine angegeben wurde, und den Umschlagschlüssel für die Entschlüsselung angeben. Das bedeutet, das man die Umschlagschlüssel nach der Verschlüsselung mit der getEnvelopeKey() Methode holen muß. Unser komplettes Beispiel für die Verschlüsselung von Inhalten mit OpenSSL schaut wie folgt aus.
Vereinfachte Verwendung mit OpensslWie vorher zu sehen war, muss man den Umschlagschlüssel holen um in der Lage zu sein den vorher verschlüsselten Wert wieder zu entschlüsseln. Das kann sehr frustrierend sein wenn man mit mehreren Werten arbeitet. Für eine vereinfachte Verwendung kann man die package Option auf TRUE setzen. Der Standardwert ist FALSE.
Jetzt enthält der zurückgegebene Wert sowohl den verschlüsselten Wert als auch den Umschlagschlüssel. Man muss diesen also nicht mehr nach der Verschlüsselung holen. Aber, und das ist der negative Aspekt dieses Features, der verschlüsselte Wert kann jetzt nur mehr entschlüsselt werden indem man Zend_Filter_Encrypt verwendet. Komprimieren des InhaltsBasierend auf dem originalen Wert, kann der verschlüsselte Wert ein sehr langer String sein. Um den Wert zu reduzieren erlaubt Zend_Filter_Encrypt die Verwendung von Kompression. Die compression Option kann entweder auf den Namen eines Komprimierungsadapters gesetzt werden, oder auf ein Array welches alle gewünschten Optionen für den Komprimierungsadapter setzt.
HtmlEntitiesGibt den String $value zurück, wobei Zeichen in Ihre HTML Entity Äquivalente konvertiert werden wenn diese existieren. Unterstützte Optionen für Zend_Filter_HtmlEntitiesDie folgenden Optionen werden für Zend_Filter_HtmlEntities unterstützt:
Einfache VerwendungSiehe das folgende Beispiel für das Standardverhalten dieses Filters.
Hochkomma StilZend_Filter_HtmlEntities erlaubt es den verwendete Hochkomma Stil zu verändern. Dies kan nützlich sein wenn man doppelte, einfache oder beide Typen von Hochkommas un-gefiltert lassen will. Siehe das folgende Beispiel: Das obige Beispiel gibt Ein 'einfaches' und "doppeltes" zurück. Es ist zu beachten dass sowohl 'einfache' als auch "doppelte" Hochkommas gefiltert werden. Das obige Beispiel gibt Ein 'einfaches' und "doppeltes" zurück. Es ist zu beachten dass "doppelte" Hochkommas gefiltert werden während 'einfache' Hochkommas nich verändert werden. Das obige Beispiel gibt Ein 'einfaches' und "doppeltes" zurück. Es ist zu beachten dass "doppelte" oder 'einfache' Hochkommas verändert werden. Helfer MethodenUm die Option quotestyle nach der Instanzierung zu erhalten oder zu ändern, können die zwei Methoden setQuoteStyle() und getQuoteStyle() verwendet werden. setQuoteStyle() akzeptiert einen $quoteStyle Parameter. Die folgenden Konstanten werden akzeptiert: ENT_COMPAT, ENT_QUOTES, ENT_NOQUOTES
Um die Option charset nach der Instanzierung zu erhalten oder zu ändern, können die zwei Methoden setCharSet() und getCharSet() verwendet werden. setCharSet() akzeptiert einen $charSet Parameter. Siehe "http://php.net/htmlentities" für eine Liste der unterstützten Zeichensets.
Um die Option doublequote nach der Instanzierung zu erhalten oder zu ändern, können die zwei Methoden setDoubleQuote() und getDoubleQuote() verwendet werden. setDoubleQuote() akzeptiert einen boolschen Parameter $doubleQuote.
IntZend_Filter_Int erlaubt es einen skalaren Wert in einen Integer Wert zu konvertieren. Unterstützte Optionen für Zend_Filter_IntEs gibt keine zusätzlichen Optionen für Zend_Filter_Int. Einfache VerwendungEin einfaches Beispiel der Verwendung ist nachfolgend zu finden:
Das gibt '-4' zurück. LocalizedToNormalizedDieser Filter ändert jede angegebene lokalisierte Eingabe in seine normalisierte Repräsentation. Er verwendet im Hintergrund Zend_Locale um diese Transformation durchzuführen. Das erlaubt es dem Benutzer Informationen in der Schreibweise seiner eigenen Sprache einzugeben, und man kann diese anschließend den normalisierten Wert zum Beispiel in der Datenbank speichern.
Die folgenden Eingabetypen können normalisiert werden:
Jede andere Eingabe wird so wie Sie ist zurückgegeben, ohne das Sie geändert wird.
Normalisierung von ZahlenJede angegebene Zahl wie Integer, Float oder Realzahlen können normalisiert werden. Es ist zu beachten das Zahlen in der Wissenschaftlichen Schreibweise, aktuell nicht von diesem Filter behandelt werden können. Wie funktioniert diese Normalisierung also im Detail für Nummern:
Nehmen wir an das wir das Gebietsschema 'de' als Anwendungsweites Gebietsschema gesetzt haben. Zend_Filter_LocalizedToNormalized nimmt das gesetzte Gebietsschema und verwendet es um zu erkennen welche Art der Eingabe angegeben wurde. In unserem Beispiel wurde ein Wert mit Nachkommastellen angegeben. Jetzt gibt der Filter die normalisierte Repräsentation für diesen Wert als String zurück. Man kann auch kontrollieren wie die normalisierte Nummer auszusehen hat. Hierfür kann man alle Optionen angeben die auch von Zend_Locale_Format verwendet werden. Die üblichsten sind:
Für Details darüber, wie diese Optionen verwendet werden, sollte man in der Kapitel Zend_Locale sehen. Anbei ist ein Beispiel welches Nachkommastellen definiert damit man sehen kann wie Optionen arbeiten:
Normalisierung für Datum und ZeitEingaben für Datum und Zeitwerte können auch normalisiert werden. Alle angegebenen Datums- und Zeitwerte werden als Array zurückgegeben, wobei jeder Teil des Datums mit einem eigenen Schlüssel angegeben wird.
Angenommen wir haben wieder das Gebietsschema 'de' gesetzt. Die Eingaben werden jetzt automatisch als Datum erkannt und man erhält ein benanntes Array zurück. Natürlich kann man auch kontrollieren wie die Datumseingaben auszusehen haben indem die Optionen date_format und locale verwendet werden.
NormalizedToLocalizedDieser Filter ist das Gegenteil des Zend_Filter_LocalizedToNormalized Filters und ändert jede angegebene normalisierte Eingabe in Ihre lokalisierte Repräsentation. Er verwendet im Hintergrund Zend_Locale um diese Transformation durchzuführen. Das erlaubt es einem, dem Benutzer jeden gespeicherten normalisierten Wert in einer lokalisierten Art und Weise anzugeben, die dem Benutzer verständlicher ist.
Die folgenden Eingabetypen können lokalisiert werden:
Jede andere Eingabe wird so wie Sie ist zurückgegeben, ohne das Sie geändert wird. Lokalisierung von ZahlenJede angegebene Zahl wie Integer, Float oder Realzahlen können lokalisiert werden. Es ist zu beachten das Zahlen in der Wissenschaftlichen Schreibweise, aktuell nicht von diesem Filter behandelt werden können. Wie funktioniert diese Lokalisierung also im Detail für Nummern:
Nehmen wir an das wir das Gebietsschema 'de' als Anwendungsweites Gebietsschema gesetzt haben. Zend_Filter_NormalizedToLocalized nimmt das gesetzte Gebietsschema und verwendet es um zu erkennen welche Art der Eingabe man haben will. In unserem Beispiel wurde ein Wert mit Nachkommastellen angegeben. Jetzt gibt der Filter die lokalisierte Repräsentation für diesen Wert als String zurück. Man kann auch kontrollieren wie die lokalisierte Nummer auszusehen hat. Hierfür kann man alle Optionen angeben die auch von Zend_Locale_Format verwendet werden. Die üblichsten sind:
Für Details darüber, wie diese Optionen verwendet werden, sollte man in der Kapitel Zend_Locale sehen. Anbei ist ein Beispiel welches Nachkommastellen definiert damit man sehen kann wie Optionen arbeiten:
Lokalisierung für Datum und ZeitNormalisierte Datums- und Zeitwerte können auch lokalisiert werden. Alle angegebenen Datums- und Zeitwerte werden als String, im Format das vom gesetzten Gebietsschema definiert ist, zurückgegeben.
Angenommen wir haben wieder das Gebietsschema 'de' gesetzt. Die Eingaben werden jetzt automatisch als Datum erkannt und man erhält ein benanntes Array zurück. Natürlich kann man auch kontrollieren wie die Datumseingaben auszusehen haben indem die Optionen date_format und locale verwendet werden. NullDieser Filter ändert die angegebene Eingabe so dass Sie NULL ist wenn Sie spezifischen Kriterien entspricht. Das ist oft notwendig wenn man mit Datenbanken arbeitet und einen NULL Wert statt einem Boolean oder irgendeinem anderen Typ haben will. Standardverhalten für Zend_Filter_NullStandardmäßig arbeitet dieser Filter wie PHP's empty() Methode; in anderen Worten, wenn empty() ein boolsches TRUE zurückgibt, dann wird ein NULL Wert zurückgegeben.
Das bedeutet das Zend_Filter_Null, ohne die Angabe irgendeiner Konfiguration, alle Eingabetypen akteptiert und in den selben Fällen NULL zurückgibt wie empty(). Jeder andere Wert ist zurückgegeben wie er ist, ohne irgendwelche Änderungen. Ändern des Verhaltens von Zend_Filter_NullManchmal ist es nicht genug basieren auf empty() zu filtern. Hierfür erlaubt es Zend_Filter_Null die Typen zu konfigurieren welche konvertiert werden und jene die nicht konvertiert werden. Die folgenden Typen können behandelt werden:
Es gibt verschiedene Wege um zu wählen welche der obigen Typen gefiltert werden und welche nicht. Man kann einen oder mehrere Typen angeben und diese addieren, man kann ein Array angeben, man kann Konstanten verwenden, oder man kann einen textuellen String angeben. Siehe die folgenden Beispiele:
Man kann auch eine Instanz von Zend_Config angeben um die gewünschten Typen zu setzen. Um Typen im nachhinein zu setzen kann setType() verwendet werden. PregReplaceZend_Filter_PregReplace führt eine Suche durch indem es Reguläre Ausdrücke verwendet und alle gefundenen Elemente ersetzt. Die Option match muss angegeben werden um das Pattern zu Setzen nach dem gesucht wird. Es kann ein String, für ein einzelnes Pattern sein, oder ein Array von Strings für mehrere Pattern. Um das Pattern zu Setzen das als Ersatz verwendet wird, muss die Option replace verwendet werden. Es kann ein String, für ein einzelnes Pattern sein, oder ein Array von Strings für mehrere Pattern.
Man kann getMatchPattern() und setMatchPattern() verwenden um die Suchpattern im Nachhinein zu Setzen. Um das Ersatzpattern zu Setzen können getReplacement() und setReplacement() verwendet werden. Für eine komplexere Verwendung sollte man einen Blick in PHP's » Kapitel für PCRE Pattern werfen. RealPathDieser Filter löst gegebene Links und Pfadnamen auf und gibt kanonische absolute Pfadnamen zurück. Referenzen zu '/./', '/../' und extra '/' Zeichen im Eingabepfad werden entfernt. Der Ergebnispfad hat keine symbolischen Links, '/./' oder '/../' Zeichen mehr. Zend_Filter_RealPath gibt bei einem Fehler FALSE zurück, z.B. wenn die Datei nicht existiert. Auf BSD Systemen schlägt Zend_Filter_RealPath nicht fehl wenn nur die letzte Komponente des Pfades nicht existiert, während andere Systeme FALSE zurückgeben.
Manchmal ist es auch nützlich einen Pfad zu erhalten wenn diese nicht existiert, z.B. wenn man den echten Pfad für einen Pfad erhalten will den man erstellt. Man kann entweder ein FALSE bei der Initialisierung angeben, oder setExists() verwenden um es zu setzen.
StringToLowerDieser Filter konvertiert alle Eingabe so das Sie kleingeschrieben sind.
Standardmäßig behandelt er nur Zeichen aus dem aktuellen Gebietsschema des eigenen Servers. Zeichen von anderen Zeichensets werden ignoriert. Trotzdem ist es möglich auch diese, mit der mbstring Erweiterung, kleinzuschreiben wenn diese in der eigenen Umgebung vorhanden ist. Es muß, bei der Initialisierung des StringToLower Filters, einfach die gewünschte Kodierung angegeben werden. Oder man verwendet die setEncoding() Methode, um die Kodierung im Nachhinein zu ändern.
StringToUpperDieser Filter konvertiert alle Eingaben so das Sie großgeschrieben sind.
So wie der StringToLower Filter, kann dieser Filter nur jene Zeichen behandeln welche vom aktuellen Gebietsschema des eigenen Servers unterstützt werden. Die Verwendung anderer Zeichensets funktioniert genauso wie bei StringToLower.
StringTrimDieser Filter verändert einen angegebenen String so dass bestimmte Zeichen vom Anfang und vom Ende entfernt werden. Unterstützte Optionen für Zend_Filter_StringTrimDie folgenden Optionen werden für Zend_Filter_StringTrim unterstützt:
Einfache VerwendungEin einfaches Beispiel der Verwendung ist nachfolgend zu finden:
Das obige Beispiel gibe 'Das ist (mein) Inhalt:' zurück. Es sollte beachtet werden dass alle Leerzeichen entfernt wurden. Standardverhalten für Zend_Filter_StringTrim
Das obige Beispiel gibt 'Das ist (mein) Inhalt' zurück. Es sollte beachtet werden dass Leerzeichen und Doppelpunkte entfernt werden. Man kann auch eine Instanz von Zend_Config oder ein Array mit einem 'charlist' Schlüssel angeben. Un die gewünschte Liste der Zeichen nach der Instanzierung zu setzen kann die Methode setCharList() verwendet werden. getCharList() gibt die Werte zurück welche für die Zeichenliste gesetzt sind. StripNewlinesGibt den String $value ohne Zeilenumbruch Zeichen zurück. StripTagsDieser Filter gibt den Eingabestring zurück, wobei alle HTML und PHP Tags von Ihm entfernt werden ausser diesen die explizit erlaubt sind. Zusätzlich zur Möglichkeit zu definieren welche Tags erlaubt sind können Entwickler definieren welche Attribute über alle erlaubten Tags erlaubt sind und auch nur für spezielle Tags.
|