Previous Next

Standard Filter Klassen

Zend Framework kommt mit einem Standardset von Filtern, welche bereits zur Verwendung fertig sind.

Alnum

Zend_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_Alnum

Die folgenden Optionen werden für Zend_Filter_Alnum unterstützt:

  • allowwhitespace: Wenn diese Option gesetzt wird dann sind Leerzeichen erlaubt. Andernfalls werden Sie unterdrückt. Standardmäßig sind Leerzeichen nicht erlaubt.

Grundsätzliche Verwendung

Das folgende Beispiel zeigt das Standardverhalten dieses Filters.

$filter = new Zend_Filter_Alnum();
$return = $filter->filter('This is (my) content: 123');
// Gibt 'Thisismycontent123' zurück

Das oben stehende Beispiel gibt 'Thisismycontent123' zurück. Wie man sehen kann werden alle Leerzeichen und auch die Klammern gefiltert.

Hinweis:

Zend_Filter_Alnum arbeitet auf fast allen Sprachen. Aber aktuell gibt es drei Ausnahmen: Chinesisch, Japanisch und Koreanisch. In diesen Sprachen wird statt dessen das englische Alphabeth statt den Zeichen dieser Sprache verwendet. Die Sprache selbst wird durch Verwendung von Zend_Locale erkannt.

Leerzeichen erlauben

Zend_Filter_Alnum kann auch Leerzeichen erlauben. Das kann nützlich sein wenn man spezielle Zeichen von einem Text entfernen will. Siehe das folgende Beispiel:

$filter = new Zend_Filter_Alnum(array('allowwhitespace' => true));
$return = $filter->filter('This is (my) content: 123');
// Gibt 'This is my content 123' zurück

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.

Alpha

Zend_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_Alpha

Die folgenden Optionen werden für Zend_Filter_Alpha unterstützt:

  • allowwhitespace: Wenn diese Option gesetzt wird dann werden Leerzeichen erlaubt. Andernfalls werden Sie unterdrückt. Standardmäßig sind Leerzeichen nicht erlaubt.

Einfache Verwendung

Ein einfaches Beispiel der Verwendung ist anbei:

$filter = new Zend_Filter_Alpha();

print $filter->filter('Das ist (mein) Inhalt: 123');

Das obige Beispiel gibt 'DasistmeinInhalt' zurück. Es sollte beachtet werden dass Leerzeichen und Klammern entfernt werden.

Hinweis:

Zend_Filter_Alpha arbeitet mit den meisten Sprachen; trotzdem gibt es drei Ausnahmen: Chinesisch, Japanisch und Koreanisch. Bei diesen Sprachen wird das englische Alphabeth verwenden. Die Sprache wird durch die Verwendung von Zend_Locale erkannt.

Leerzeichen erlauben

Zend_Filter_Alpha kann auch Leerzeichen erlauben. Dies kann nützlich sein wenn man spezielle Zeichen von einem Statz entfernen will. Siehe das folgende Beispiel:

$filter = new Zend_Filter_Alpha(array('allowwhitespace' => true));

print $filter->filter('Das ist (mein) Inhalt: 123');

Das oben stehende Beispiel gibt 'Das ist mein Inhalt ' zurück. Es ist zu beachten das alle Klammern, Doppelpunkte und Zahlen entfernt werden wärend 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.

BaseName

Zend_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_BaseName

Es gibt keine zusätzlichen Optionen für Zend_Filter_BaseName.

Einfache Verwendung

Ein einfaches Beispiel der Verwendung ist nachfolgend zu finden:

$filter = new Zend_Filter_BaseName();

print $filter->filter('/vol/tmp/filename');

Das gibt 'filename' zurück.

$filter = new Zend_Filter_BaseName();

print $filter->filter('/vol/tmp/filename.txt');

Das gibt 'filename.txt' zurück.

Boolean

Dieser 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_Boolean

Standardmäß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.

$filter = new Zend_Filter_Boolean();
$value  = '';
$result = $filter->filter($value);
// gibt false zurück

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 ändern

Manchmal 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:

  • boolean: Gibt einen boolschen Wert so wie er ist zurück.

  • integer: Konvertiert den Integerwert 0 zu FALSE.

  • float: Konvertiert den Gleitkommawert 0.0 zu FALSE.

  • string: Konvertiert einen leeren String '' zu FALSE.

  • zero: Konvertiert einen String der ein einzelnes Null Zeichen ('0') enthält zu FALSE.

  • empty_array: Konvertiert ein leeres array zu FALSE.

  • null: Konvertiert den Wert NULL zu FALSE.

  • php: Konvertiert Werte so wie diese mit PHP zu BOOLEAN konvertiert werden.

  • false_string: Konvertiert einen String der das Wort "false" enthält zu einem boolschen FALSE.

  • yes: Konvertiert einen lokalisierten String welcher das Wort "nein" enthält zu FALSE.

  • all: Konvertiert alle obigen Typen zu BOOLEAN.

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:

// Konvertiert 0 zu false
$filter = new Zend_Filter_Boolean(Zend_Filter_Boolean::INTEGER);

// Konvertiert 0 und '0' zu false
$filter = new Zend_Filter_Boolean(
    Zend_Filter_Boolean::INTEGER + Zend_Filter_Boolean::ZERO
);

// Konvertiert 0 und '0' zu false
$filter = new Zend_Filter_Boolean(array(
    'type' => array(
        Zend_Filter_Boolean::INTEGER,
        Zend_Filter_Boolean::ZERO,
    ),
));

// Konvertiert 0 und '0' zu false
$filter = new Zend_Filter_Boolean(array(
    'type' => array(
        'integer',
        'zero',
    ),
));

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 Werte

Wie 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.

$filter = new Zend_Filter_Boolean(array(
    'type'   => Zend_Filter_Boolean::ALL,
    'locale' => 'de',
));

// Gibt false zurück
echo $filter->filter('nein');

$filter->setLocale('en');

// Gibt true zurück
$filter->filter('yes');

Casten ausschalten

Machmal 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.

Verwendung ohne Casten
Typ True False
Zend_Filter_Boolean::BOOLEAN TRUE FALSE
Zend_Filter_Boolean::INTEGER 0 1
Zend_Filter_Boolean::FLOAT 0.0 1.0
Zend_Filter_Boolean::STRING ""  
Zend_Filter_Boolean::ZERO "0" "1"
Zend_Filter_Boolean::EMPTY_ARRAY array()  
Zend_Filter_Boolean::NULL NULL  
Zend_Filter_Boolean::FALSE_STRING "false" (unabhängig von der Schreibweise) "true" (unabhängig von der Schreibweise)
Zend_Filter_Boolean::YES localized "yes" (unabhängig von der Schreibweise) localized "no" (unabhängig von der Schreibweise)

Das folgende Beispiel zeigt das Verhalten wenn die Option casting verändert wird:

$filter = new Zend_Filter_Boolean(array(
    'type'    => Zend_Filter_Boolean::ALL,
    'casting' => false,
));

// Gibt false zurück
echo $filter->filter(0);

// Gibt true zurück
echo $filter->filter(1);

// Gibt den Wert zurück
echo $filter->filter(2);

Callback

Dieser 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.

$filter = new Zend_Filter_Callback('strrev');

print $filter->filter('Hello!');
// Ausgabe "!olleH"

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.

// Unsere Klassendefinition
class MyClass
{
    public function Reverse($param);
}

// Die Filter Definition
$filter = new Zend_Filter_Callback(array('MyClass', 'Reverse'));
print $filter->filter('Hello!');

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.

$filter = new Zend_Filter_Callback(
    array(
        'callback' => 'MyMethod',
        'options'  => array('key' => 'param1', 'key2' => 'param2')
    )
);
$filter->filter(array('value' => 'Hello'));

Wenn man die oben stehende Methodendefinition manuell aufrufen würde, dann würde das wie folgt aussehen:

$value = MyMethod('Hello', 'param1', 'param2');

Hinweis:

Man sollte auch beachten das die Definition einer Callback Methode, welche nicht aufgerufen werden kann, eine Exception auslöst.

Compress und Decompress

Diese 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:

  • Bz2

  • Gz

  • Lzf

  • Rar

  • Tar

  • Zip

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 Handhabung

Um 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.

$filter = new Zend_Filter_Compress('Bz2');

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).

$filter = new Zend_Filter_Compress(array(
    'adapter' => 'Bz2',
    'options' => array(
        'blocksize' => 8,
    ),
));

Hinweis: Standardmäßiger Kompressions Adapter

Wenn kein Kompressions Adapter angegeben wird, dann wird der Gz Adapter verwendet.

Fast die gleiche Verwendung ist die Dekomprimierung eines Strings. Wir müssen in diesem Fall nur den Dekompressions Filter verwenden.

$filter = new Zend_Filter_Decompress('Bz2');

Um einen komprimierten String zu erhalten muss der originale String angegeben werden. Der gefilterte Wert ist die komprimierte Version des originalen Strings.

$filter     = new Zend_Filter_Compress('Bz2');
$compressed = $filter->filter('Uncompressed string');
// Gibt den komprimierten String zurück

Dekomprimierung funktioniert auf die gleiche Weise.

$filter     = new Zend_Filter_Decompress('Bz2');
$compressed = $filter->filter('Compressed string');
// Gibt den dekomprimierten String zurück

Hinweis: Hinweis zur Komprimierung von Strings

Nicht alle Adapter unterstützen die Kompression von Strings. Kompressions Formate wie Rar können nur Dateien und Verzeichnisse verarbeiten. Für Details muss man in die Sektion für den Adapter gesehen werden den man verwenden will.

Ein Archiv erstellen

Die 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.

$filter     = new Zend_Filter_Compress(array(
    'adapter' => 'Bz2',
    'options' => array(
        'archive' => 'filename.bz2',
    ),
));
$compressed = $filter->filter('Uncompressed string');
// Gibt bei Erfolg true zurück und erstellt die Archiv Datei

Im obigen Beispeil wird der unkomprimierte String komprimiert, und wird dann in die angegebene Archiv Datei geschrieben.

Hinweis: Existierende Archive werden überschrieben

Der Inhalt einer existierenden Datei wird überschrieben wenn der angegebene Dateiname des Archivs bereits existiert.

Wenn man eine Datei komprimieren will, dann muss man den Namen der Datei mit dessen Pfad angeben.

$filter     = new Zend_Filter_Compress(array(
    'adapter' => 'Bz2',
    'options' => array(
        'archive' => 'filename.bz2'
    ),
));
$compressed = $filter->filter('C:\temp\compressme.txt');
// Gibt bei Erfolg true zurück und erstellt die Archiv Datei

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.

$filter     = new Zend_Filter_Compress(array(
    'adapter' => 'Bz2',
    'options' => array(
        'archive' => 'filename.bz2'
    ),
));
$compressed = $filter->filter('C:\temp\somedir');
// Gibt bei Erfolg true zurück und erstellt die Archiv Datei

Hinweis: Keine großen oder Basisverzeichnisse komprimieren

Man sollte niemals große oder Basisverzeichnisse wie eine komplette Partition komprimieren. Die Komprimierung einer kompletten Partition ist ein sehr Zeitintensiver Task welcher zu massiven Problemen auf dem Server führen kann, wenn es nicht genug Platz gibt, oder das eigene Skript zu viel Zeit benötigt.

Ein Archiv dekomprimieren

Die 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.

$filter     = new Zend_Filter_Decompress('Bz2');
$compressed = $filter->filter('filename.bz2');
// Gibt bei Erfolg true zurück und dekomprimiert die Archiv Datei

Einige Adapter unterstützen die Dekomprimierung des Archivs in ein anderes Unterverzeichnis. In diesem Fall kann der Parameter target spezifiziert werden.

$filter     = new Zend_Filter_Decompress(array(
    'adapter' => 'Zip',
    'options' => array(
        'target' => 'C:\temp',
    )
));
$compressed = $filter->filter('filename.zip');
// Gibt bei Erfolg true zurück und dekomprimiert die Archiv Datei
// in das angegebene Zielverzeichnis

Hinweis: Verzeichnisse in welche extrahiert werden soll müssen existieren

Wenn man ein Archiv in ein Verzeichnis dekomprimieren will, dann muss dieses Verzeichnis existieren.

Bz2 Adapter

Der Bz2 Adapter kann folgendes komprimieren und dekomprimieren:

  • Strings

  • Dateien

  • Verzeichnisse

Dieser Adapter verwendet PHP's Bz2 Erweiterung.

Um die Komprimierung anzupassen unterstützt dieser Adapter die folgenden Optionen:

  • Archive: Dieser Parameter setzt die Archivdatei welche verwendet oder erstellt werden soll.

  • Blocksize: Dieser Parameter setzt die Blockgröße welche zu verwenden ist. Diese kann zwischen '0' und '9' liegen. Der Standardwert ist '4'.

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 Adapter

Der Gz Adapter kann folgendes komprimieren und dekomprimieren:

  • Strings

  • Dateien

  • Verzeichnisse

Dieser Adapter verwendet PHP's Zlib Erweiterung.

Um die Komprimierung anzupassen unterstützt dieser Adapter die folgenden Optionen:

  • Archive: Dieser Parameter setzt die Archivdatei welche verwendet oder erstellt werden soll.

  • Level: Das Level der Kompression welches verwendet werden soll. Es kann zwischen '0' und '9' liegen. Der Standardwert ist '9'.

  • Mode: Es gibt zwei unterstützte Modi. 'compress' und 'deflate'. Der Standardwert ist 'compress'.

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 Adapter

Der Lzf Adapter kann folgendes komprimieren und dekomprimieren:

  • Strings

Hinweis: Lzf unterstützt nur Strings

Der Lzf Adapter kann keine Dateien oder Verzeichnisse verarbeiten.

Dieser Adapter verwendet PHP's Lzf Erweiterung.

Es sind keine Optionen vorhanden um diesen Adapter anzupassen.

Rar Adapter

Der Rar Adapter kann folgendes komprimieren und dekomprimieren:

  • Dateien

  • Verzeichnisse

Hinweis: Rar unterstützt keine Strings

Der Rar Adapter kann keine Strings verarbeiten.

Dieser Adapter verwendet PHP's Rar Erweiterung.

Hinweis: Die Kompression wird von Rar nicht unterstützt

Durch Beschränkungen des Kompressions Formats von Rar, gibt es keine frei erhältliche Komprimierung. Wenn man Dateien in ein neues Rar Archiv komprimieren will, muss man dem Adapter einen Callback anbieten mit dem ein Rar Kompressions Programm aufgerufen wird.

Um die Komprimierung anzupassen unterstützt dieser Adapter die folgenden Optionen:

  • Archive: Dieser Parameter setzt die Archivdatei welche verwendet oder erstellt werden soll.

  • Callback: Ein Callback welcher diesem Adapter Unterstützung für Komprimierung anbietet.

  • Password: Das Passwort welches für die Dekomprimierung verwendet werden soll.

  • Target: Das Ziel zu dem dekomprimierte Dateien geschrieben werden.

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 Adapter

Der Rar Adapter kann folgendes komprimieren und dekomprimieren:

  • Dateien

  • Verzeichnisse

Hinweis: Tar unterstützt keine Strings

Der Tar Adapter kann keine Strings verarbeiten.

Dieser Adapter verwendet PEAR's Archive_Tar Komponente.

Um die Komprimierung anzupassen unterstützt dieser Adapter die folgenden Optionen:

  • Archive: Dieser Parameter setzt die Archivdatei welche verwendet oder erstellt werden soll.

  • Mode: Ein Modus der für die Komprimierung verwendet werden soll. Unterstützt werden entweder 'NULL', was keine Komprimierung bedeutet, 'Gz' was PHP's Zlib Erweiterung verwendet, und 'Bz2' was PHP's Bz2 Erweiterung verwendet. Der Standardwert ist 'NULL'.

  • Target: Das Ziel zu dem dekomprimierte Dateien geschrieben werden.

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.

Hinweis: Verwendung von Verzeichnissen

Wenn Verzeichnisse mit Tar komprimiert werden, dann wird der komplette Dateipfad verwendet. Das bedeutet das erstellte Tar Dateien nicht nur das Unterverzeichnis sondern den kompletten Pfad für die komprimierten Dateien enthält.

Zip Adapter

Der Rar Adapter kann folgendes komprimieren und dekomprimieren:

  • Strings

  • Dateien

  • Verzeichnisse

Hinweis: Zip unterstützt die Dekomprimierung von Strings nicht

Der Zip Adapter kann die Dekomprimierung von Strings nicht verarbeiten; eine Dekomprimierung wird immer in eine Datei geschrieben.

Dieser Adapter verwendet PHP's Zip Erweiterung.

Um die Komprimierung anzupassen unterstützt dieser Adapter die folgenden Optionen:

  • Archive: Dieser Parameter setzt die Archivdatei welche verwendet oder erstellt werden soll.

  • Target: Das Ziel zu dem dekomprimierte Dateien geschrieben werden.

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.

Decrypt

Dieser 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 Mcrypt

Fü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.

// Verwende die Standardmäßigen Blowfish Einstellungen
$filter = new Zend_Filter_Decrypt('myencryptionkey');

// Setze den Vektor mit dem der Inhalt verschlüsselt wurde
$filter->setVector('myvector');

$decrypted = $filter->filter('encoded_text_normally_unreadable');
print $decrypted;

Hinweis:

Man sollte beachten das man eine Ausnahme erhält wenn die Mcrypt Erweiterung in der eigenen Umgebung nicht vorhanden ist.

Hinweis:

Man sollte ausserdem beachten das alle Einstellungen geprüft werden wenn man die Instanz erstellt oder wenn man setEncryption() aufruft. Wenn Mcrypt ein Problem mit den Einstellungen erkennt wird eine Ausnahme geworfen.

Entschlüsselung mit OpenSSL

Entschlü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:

  • private: Den eigenen privaten Schlüssel der für die Entschlüsselung des Inhalts verwendet wird. Der private Schlüssel kann ein Dateiname mit einem Pfad zur Schlüsseldatei sein, oder einfach der Inhalt der Schlüsseldatei selbst.

  • envelope: Der verschlüsselte Umschlagschlüssel vom Benutzer der den Inhalt verschlüsselt hat. Man kann entweder den Pfad mit dem Dateinamen zur Schlüsseldatei angeben, oder den Inhalt der Schlüsseldatei selbst. Wenn die package Option gesetzt wurde, kann man diesen Parameter unterdrücken.

  • package: Ob der Umschlagschlüssel mit dem verschlüsselten Wert gepackt werden soll. Der Standardwert ist FALSE.

// Verwende openssl und gib einen privaten Schlüssel an
$filter = new Zend_Filter_Decrypt(array(
    'adapter' => 'openssl',
    'private' => '/path/to/mykey/private.pem'
));

// natürlich kann man den Umschlagschlüssel auch bei der Instanziierung angeben
$filter->setEnvelopeKey(array(
    '/key/from/encoder/first.pem',
    '/key/from/encoder/second.pem'
));

Hinweis:

Beachte das der OpenSSL Adapter nicht funktionieren wird wenn man keine gültigen Schlüssel angibt.

Optional könnte es notwendig sein die Passphrase für die Entschlüsselung der Schlüssel selbst anzugeben indem die setPassphrase() Methode verwendet wird.

// Verwende openssl und gib einen privaten Schlüssel an
$filter = new Zend_Filter_Decrypt(array(
    'adapter' => 'openssl',
    'private' => '/path/to/mykey/private.pem'
));

// natürlich kann man den Umschlagschlüssel auch bei der Instanziierung angeben
$filter->setEnvelopeKey(array(
    '/key/from/encoder/first.pem',
    '/key/from/encoder/second.pem'
));
$filter->setPassphrase('mypassphrase');

Zum Schluß kann der Inhalt entschlüsselt werden. Unser komplettes Beispiel für den vorher verschlüsselten Inhat sieht nun wie folgt aus.

// Verwende openssl und gib einen privaten Schlüssel an
$filter = new Zend_Filter_Decrypt(array(
    'adapter' => 'openssl',
    'private' => '/path/to/mykey/private.pem'
));

// natürlich kann man den Umschlagschlüssel auch bei der Instanziierung angeben
$filter->setEnvelopeKey(array(
    '/key/from/encoder/first.pem',
    '/key/from/encoder/second.pem'
));
$filter->setPassphrase('mypassphrase');

$decrypted = $filter->filter('encoded_text_normally_unreadable');
print $decrypted;

Digits

Gibt den String $value zurück und entfernt alle ausser Ziffern.

Unterstützte Optionen für Zend_Filter_Digits

Es gibt keine zusätzlichen Optionen für Zend_Filter_Digits.

Einfache Verwendung

Ein einfaches Beispiel der Verwendung ist nachfolgend zu finden:

$filter = new Zend_Filter_Digits();

print $filter->filter('October 2009');

Dies gibt "2009" zurück.

$filter = new Zend_Filter_Digits();

print $filter->filter('HTML 5 für Dummies');

Dies gibt "5" zurück.

Dir

Ein 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_Dir

Es gibt keine zusätzlichen Optionen für Zend_Filter_Dir.

Einfache Verwendung

Ein einfaches Beispiel der Verwendung ist nachfolgend zu finden:

$filter = new Zend_Filter_Dir();

print $filter->filter('/etc/passwd');

Dies gibt "/etc" zurück.

$filter = new Zend_Filter_Dir();

print $filter->filter('C:/Temp/x');

Dies gibt "C:/Temp" zurück.

Encrypt

Dieser 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.

// Verwenden des Mcrypt Adapters
$filter1 = new Zend_Filter_Encrypt(array('adapter' => 'mcrypt'));

// Verwendung des OpenSSL Adapters
$filter2 = new Zend_Filter_Encrypt(array('adapter' => 'openssl'));

Um einen anderen Adapter zu setzen kann man auch setAdapter() verwenden, und die getAdapter() Methode um den aktuell gesetzten Adapter zu erhalten.

// Verwenden des Mcrypt Adapters
$filter = new Zend_Filter_Encrypt();
$filter->setAdapter('openssl');

Hinweis:

Wenn man die adapter Option nicht angibt oder setAdapter nicht verwendet, dann wird standardmäßig der Mcrypt Adapter verwendet.

Verschlüsselung mit Mcrypt

Wenn man die Mcrypt Erweiterung installiert hat, kann man den Mcrypt Adapter verwenden. Dieser Adapter unterstützt bei der Initialisierung die folgenden Optionen:

  • key: Der Verschlüsselungs-Schlüssel mit dem die Eingabe verschlüsselt wird. Man benötigt den gleichen Schlüssel für die Entschlüsselung.

  • algorithm: Der Algorithmus der verwendet werden soll. Das sollte einer der Algorithmus Cipher sein die man unter » PHP's Mcrypt Cipers finden kann. Wenn er nicht gesetzt wird, ist er standardmäßig 'blowfish'.

  • algorithm_directory: Das Verzeichnis in dem der Algorithmus gefunden werden kann. Wenn es nicht gesetzt wird, ist es standardmäßig der Pfad der in der Mcrypt Erweiterung gesetzt wurde.

  • mode: Der Verschlüsselungs Modus der verwendet werden soll. Es sollte einer der Modi sein der unter » PHP's Mcrypt Modi gefunden werden kann. Wenn er nicht gesetzt wird, ist er standardmäßig 'cbc'.

  • mode_directory: Der Verzeichnis in dem der Modus gefunden werden kann. Wenn es nicht gesetzt wird, ist es standardmäßig der Pfad der in der Mcrypt Erweiterung gesetzt wurde.

  • vector: Der Initialisierungs Vektor der verwendet werden soll. Wenn er nicht gesetzt wird, wird ein zufälliger Vektor verwende.

  • salt: Ob der Schlüssel als Salt Wert verwendet wird. Der Schlüssel der für die Verschlüsselung verwendet wird, wird selbst auch verschlüsselt. Der Standardwert ist FALSE.

  • compression: Ob der verschlüsselte Wert komprimiert werden soll. Der Standard ist nicht komprimiert. Für Details sehen Sie unter Komprimierung für Openssl nach.

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.

Hinweis:

Es ist zu beachten das man eine Ausnahme erhält wenn die mcrypt Erweiterung in der eigenen Umgebung nicht vorhanden ist.

Hinweis:

Man sollte auch beachten das alle Einstellungen geprüft werden wenn man eine Instanz erstellt oder setEncryption() aufruft. Wenn mcrypt ein Problem mit diesen Einstellungen erkennt wird eine Ausnahme geworfen.

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.

Hinweis:

Es ist zu beachten das, wenn man keinen eigenen Vektor setzt, man den Vektor holen und speichern muß. Andernfalls ist man nicht in der Lage den verschlüsselten String wieder zu dekodieren.

// Verwendet die standardmäßigen Blowfish Einstellungen
$filter = new Zend_Filter_Encrypt('myencryptionkey');

// Setzt einen eigenen Vektor, andernfalls muß man getVector()
// ausrufen und diesen Vektor für spätere Entschlüsselung speichern
$filter->setVector('myvector');
// $filter->getVector();

$encrypted = $filter->filter('text_to_be_encoded');
print $encrypted;

// Für Entschlüsselung siehe den Decrypt Filter

Verschlüsselung mit OpenSSL

Wenn man die OpenSSL Erweiterung installiert hat, kann man den OpenSSL Adapter verwenden. Dieser Adapter unterstützt bei der Instanziierung die folgenden Optionen:

  • public: Der öffentliche Schlüssel des Benutzer dem man verschlüsselte Inhalte zur Verfügung stellen will. Man kann mehrere öffentliche Schlüssel angeben indem man ein Array verwendet. Man kann entweder den Pfad und den Dateinamen der Schlüsseldatei angeben, oder nur den Inhalt der Schlüseldatei selbst.

  • private: Der eigene private Schlüssel der für die Verschlüsselung des Inhalts verwendet wird. Auch der private Schlüssel kann entweder ein Dateiname mit Pfad zur Schlüsseldatei sein, oder nur der Inhalt der Schlüsseldatei selbst.

  • compression: Ob der verschlüsselte Wert komprimiert werden soll. Standardmäßig wird nicht komprimiert.

  • package: Ob der Umschlagschlüssel mit dem verschlüsselten Wert gepackt werden soll. Der Standardwert ist FALSE.

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.

// Verwende openssl und gib einen privaten Schlüssel an
$filter = new Zend_Filter_Encrypt(array(
    'adapter' => 'openssl',
    'private' => '/path/to/mykey/private.pem'
));

// natürlich kann man die öffentlichen Schlüssel auch
// bei der Instanziierung angeben
$filter->setPublicKey(array(
    '/public/key/path/first.pem',
    '/public/key/path/second.pem'
));

Hinweis:

Es ist zu beachten das der OpenSSL Adapter nicht funktionieren wird wenn keine gültigen Schlüsseln angegeben 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.

// Verwende openssl und gib einen privaten Schlüssel an
$filter = new Zend_Filter_Encrypt(array(
    'adapter' => 'openssl',
    'private' => '/path/to/mykey/private.pem'
));

// Natürlich kann man die öffentlichen Schlüssel
// auch bei der Instanziierung angeben
$filter->setPublicKey(array(
    '/public/key/path/first.pem',
    '/public/key/path/second.pem'
));
$filter->setPassphrase('mypassphrase');

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.

// Verwende openssl und gib einen privaten Schlüssel an
$filter = new Zend_Filter_Encrypt(array(
    'adapter' => 'openssl',
    'private' => '/path/to/mykey/private.pem'
));

// natürlich kann man die öffentlichen Schlüssel
// auch bei der Instaiziierung angeben
$filter->setPublicKey(array(
    '/public/key/path/first.pem',
    '/public/key/path/second.pem'
));
$filter->setPassphrase('mypassphrase');

$encrypted = $filter->filter('text_to_be_encoded');
$envelope  = $filter->getEnvelopeKey();
print $encrypted;

// Für die Entschlüsselung siehe beim Decrypt Filter

Vereinfachte Verwendung mit Openssl

Wie 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.

// Verwende openssl und gib einen privaten Schlüssel an
$filter = new Zend_Filter_Encrypt(array(
    'adapter' => 'openssl',
    'private' => '/path/to/mykey/private.pem',
    'public'  => '/public/key/path/public.pem',
    'package' => true
));

$encrypted = $filter->filter('text_to_be_encoded');
print $encrypted;

// Für die Entschlüsselung siehe beim Decrypt Filter

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 Inhalts

Basierend 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.

// Verwende nur den grundsätzlichen Komprimierungsadapter
$filter1 = new Zend_Filter_Encrypt(array(
    'adapter'     => 'openssl',
    'private'     => '/path/to/mykey/private.pem',
    'public'      => '/public/key/path/public.pem',
    'package'     => true,
    'compression' => 'bz2'
));

// Verwende den Basis Komprimierungsadapter
$filter2 = new Zend_Filter_Encrypt(array(
    'adapter'     => 'openssl',
    'private'     => '/path/to/mykey/private.pem',
    'public'      => '/public/key/path/public.pem',
    'package'     => true,
    'compression' => array('adapter' => 'zip', 'target' => '\usr\tmp\tmp.zip')
));

Hinweis: Entschlüsselung mit den selben Werten

Wenn man einen Wert entschlüsseln will welcher zusätzlich komprimiert wurde, dann muss man die selben Komprimierungseinstellungen für die Entschlüsselung verwenden wie bei der Verschlüsselung. Andernfalls wird die Entschlüsselung fehlschlagen.

HtmlEntities

Gibt den String $value zurück, wobei Zeichen in Ihre HTML Entity Äquivalente konvertiert werden wenn diese existieren.

Unterstützte Optionen für Zend_Filter_HtmlEntities

Die folgenden Optionen werden für Zend_Filter_HtmlEntities unterstützt:

  • quotestyle: Äquivalent zum Parameter quote_style der nativen PHP Funktion htmlentities. Er erlaubt es zu definieren wass mit 'einfachen' und "doppelten" Hochkomma passieren soll. Die folgenden Konstanten werden akzeptiert: ENT_COMPAT, ENT_QUOTES ENT_NOQUOTES wobei ENT_COMPAT der Standardwert ist.

  • charset: Äquivalent zum Parameter charset der nativen PHP Funktion htmlentities. Er definiert das Zeichenset welches beim Filtern verwendet werden soll. Anders als bei der nativen PHP Funktion ist der Standardwert 'UTF-8'. Siehe "http://php.net/htmlentities" für eine Liste der unterstützten Zeichensets.

    Hinweis:

    Diese Option kann auch über den Parameter $options, als Zend_Config Objekt oder als Array gesetzt werden. Der Optionsschlüssel wird entweder als Zeichenset oder als Kodierung akzeptiert.

  • doublequote: Äquivalent zum Parameter double_encode der nativen PHP Funktion htmlentities. Wenn er auf false gesetzt wird, werden existierende html entities nicht kodiert. Der Standardwert ist es alles zu konvertieren (true).

    Hinweis:

    Diese Option muss über den Parameter $options oder die Methode setDoubleEncode() gesetzt werden.

Einfache Verwendung

Siehe das folgende Beispiel für das Standardverhalten dieses Filters.

$filter = new Zend_Filter_HtmlEntities();

print $filter->filter('<');

Hochkomma Stil

Zend_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:

$filter = new Zend_Filter_HtmlEntities(array('quotestyle' => ENT_QUOTES));

$input  = "Ein 'einfaches' und " . '"doppeltes"';
print $filter->filter($input);

Das obige Beispiel gibt Ein 'einfaches' und "doppeltes" zurück. Es ist zu beachten dass sowohl 'einfache' als auch "doppelte" Hochkommas gefiltert werden.

$filter = new Zend_Filter_HtmlEntities(array('quotestyle' => ENT_COMPAT));

$input  = "Ein 'einfaches' und " . '"doppeltes"';
print $filter->filter($input);

Das obige Beispiel gibt Ein 'einfaches' und "doppeltes" zurück. Es ist zu beachten dass "doppelte" Hochkommas gefiltert werden wärend 'einfache' Hochkommas nich verändert werden.

$filter = new Zend_Filter_HtmlEntities(array('quotestyle' => ENT_NOQUOTES));

$input  = "Ein 'einfaches' und" . '"doppeltes"';
print $filter->filter($input);

Das obige Beispiel gibt Ein 'einfaches' und "doppeltes" zurück. Es ist zu beachten dass "doppelte" oder 'einfache' Hochkommas verändert werden.

Helfer Methoden

Um 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

$filter = new Zend_Filter_HtmlEntities();

$filter->setQuoteStyle(ENT_QUOTES);
print $filter->getQuoteStyle(ENT_QUOTES);

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.

$filter = new Zend_Filter_HtmlEntities();

$filter->setQuoteStyle(ENT_QUOTES);
print $filter->getQuoteStyle(ENT_QUOTES);

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.

$filter = new Zend_Filter_HtmlEntities();

$filter->setQuoteStyle(ENT_QUOTES);
print $filter->getQuoteStyle(ENT_QUOTES);

Int

Zend_Filter_Int erlaubt es einen skalaren Wert in einen Integer Wert zu konvertieren.

Unterstützte Optionen für Zend_Filter_Int

Es gibt keine zusätzlichen Optionen für Zend_Filter_Int.

Einfache Verwendung

Ein einfaches Beispiel der Verwendung ist nachfolgend zu finden:

$filter = new Zend_Filter_Int();

print $filter->filter('-4 ist weniger als 0');

Das gibt '-4' zurück.

LocalizedToNormalized

Dieser 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.

Hinweis:

Es ist zu beachten das Normalisierung nicht mit Übersetzung gleichzusetzen ist. Dieser Filter kann Strings nicht von einer Sprache in eine andere Übersetzen, wie man es zum Beispiel bei Monaten oder Namen von Tagen erwarten könnte.

Die folgenden Eingabetypen können normalisiert werden:

  • integer: Ganzzahlen, welche lokalisiert sind, werden in die englische Schreibweise normalisiert.

  • float: Gleitkommazahlen, welche lokalisiert sind, werden in die englische Schreibweise normalisiert.

  • numbers: Andere Zahlen, wie Realzahlen, werden in die englische Schreibweise normalisiert.

  • time: Zeitwerte, werden in ein benanntes Array normalisiert.

  • date: Datumswerte, werden in ein benanntes Array normalisiert.

Jede andere Eingabe wird so wie Sie ist zurückgegeben, ohne das Sie geändert wird.

Hinweis:

Man sollte beachten das normalisierte Ausgabe immer als String angegeben sind. Andernfalls würde die eigene Umgebung die normalisierte Ausgabe automatisch in die Schreibweise konvertieren welche die eigene Umgebung anhand des gesetzen Gebietsschemas aktuell verwendet.

Normalisierung von Zahlen

Jede 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:

// Den Filter initiieren
$filter = new Zend_Filter_LocalizedToNormalized();
$filter->filter('123.456,78');
// Gibt den Wert '123456.78' zurück

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:

  • date_format

  • locale

  • precision

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:

// Nummerischer Filter
$filter = new Zend_Filter_LocalizedToNormalized(array('precision' => 2));

$filter->filter('123.456');
// Gibt den Wert '123456.00' zurück

$filter->filter('123.456,78901');
// Gibt den Wert '123456.79' zurück

Normalisierung für Datum und Zeit

Eingaben 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.

// Den Filter initiieren
$filter = new Zend_Filter_LocalizedToNormalized();
$filter->filter('12.April.2009');
// Gibt array('day' => '12', 'month' => '04', 'year' => '2009') zurück

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.

// Datumsfilter
$filter = new Zend_Filter_LocalizedToNormalized(
    array('date_format' => 'ss:mm:HH')
);

$filter->filter('11:22:33');
// Gibt array('hour' => '33', 'minute' => '22', 'second' => '11') zurück

NormalizedToLocalized

Dieser 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.

Hinweis:

Es ist zu beachten das Lokalisierung nicht mit Übersetzung gleichzusetzen ist. Dieser Filter kann Strings nicht von einer Sprache in eine andere Übersetzen, wie man es zum Beispiel bei Monaten oder Namen von Tagen erwarten könnte.

Die folgenden Eingabetypen können lokalisiert werden:

  • integer: Ganzzahlen, welche normalisiert sind, werden in die gesetzte Schreibweise lokalisiert.

  • float: Gleitkommazahlen, welche normalisiert sind, werden in die gesetzte Schreibweise lokalisiert.

  • numbers: Andere Zahlen, wie Realzahlen, werden in die gesetzte Schreibweise lokalisiert.

  • time: Zeitwerte, werden in einen String lokalisiert.

  • date: Datumswerte, werden in einen String lokalisiert.

Jede andere Eingabe wird so wie Sie ist zurückgegeben, ohne das Sie geändert wird.

Lokalisierung von Zahlen

Jede 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:

// Den Filter initiieren
$filter = new Zend_Filter_NormalizedToLocalized();
$filter->filter(123456.78);
// Gibt den Wert '123.456,78' zurück

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:

  • date_format

  • locale

  • precision

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:

// Nummerischer Filter
$filter = new Zend_Filter_NormalizedToLocalized(array('precision' => 2));

$filter->filter(123456);
// Gibt den Wert '123.456,00' zurück

$filter->filter(123456.78901);
// Gibt den Wert '123.456,79' zurück

Lokalisierung für Datum und Zeit

Normalisierte 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.

// Den Filter initiieren
$filter = new Zend_Filter_NormalizedToLocalized();
$filter->filter(array('day' => '12', 'month' => '04', 'year' => '2009');
// Gibt '12.04.2009' zurück

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.

// Datumsfilter
$filter = new Zend_Filter_LocalizedToNormalized(
    array('date_format' => 'ss:mm:HH')
);

$filter->filter(array('hour' => '33', 'minute' => '22', 'second' => '11'));
// Gibt '11:22:33' zurück

Null

Dieser 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_Null

Standardmäß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.

$filter = new Zend_Filter_Null();
$value  = '';
$result = $filter->filter($value);
// Gibt null statt einem leeren String zurück

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_Null

Manchmal 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:

  • boolean: Konvertiert einen boolschen FALSE Wert zu NULL.

  • integer: Konvertiert einen Integer 0 Wert zu NULL.

  • empty_array: Konvertiert ein leeres Array zu NULL.

  • string: Konvertiert einen leeren String '' zu NULL.

  • zero: Konvertiert einen String der eine einzelne Null Ziffer enthält ('0') zu NULL.

  • all: Konvertiert alle obigen Typen zu NULL. (Das ist das Standardverhalten.)

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:

// Konvertiert false zu null
$filter = new Zend_Filter_Null(Zend_Filter_Null::BOOLEAN);

// Konvertiert false und 0 zu null
$filter = new Zend_Filter_Null(
    Zend_Filter_Null::BOOLEAN + Zend_Filter_Null::INTEGER
);

// Konvertiert false und 0 zu null
$filter = new Zend_Filter_Null( array(
    Zend_Filter_Null::BOOLEAN,
    Zend_Filter_Null::INTEGER
));

// Konvertiert false und 0 zu null
$filter = new Zend_Filter_Null(array(
    'boolean',
    'integer',
));

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.

PregReplace

Zend_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.

$filter = new Zend_Filter_PregReplace(array('match' => '/bob/',
                                            'replace' => 'john'));
$input  = 'Hy bob!';

$filter->filter($input);
// Gibt 'Hy john!' zurück

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.

$filter = new Zend_Filter_PregReplace();
$filter->setMatchPattern(array('bob', 'Hy'))
       ->setReplacement(array('john', 'Bye'));
$input  = 'Hy bob!";

$filter->filter($input);
// Gibt 'Bye john!' zurück

Für eine komplexere Verwendung sollte man einen Blick in PHP's » Kapitel für PCRE Pattern werfen.

RealPath

Dieser 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ärend andere Systeme FALSE zurückgeben.

$filter = new Zend_Filter_RealPath();
$path   = '/www/var/path/../../mypath';
$filtered = $filter->filter($path);

// Gibt '/www/mypath' zurück

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.

$filter = new Zend_Filter_RealPath(false);
$path   = '/www/var/path/../../non/existing/path';
$filtered = $filter->filter($path);

// Gibt '/www/non/existing/path' zurück, selbst wenn
// file_exists oder realpath false zurückgeben würden

StringToLower

Dieser Filter konvertiert alle Eingabe so das Sie kleingeschrieben sind.

$filter = new Zend_Filter_StringToLower();

print $filter->filter('SAMPLE');
// gibt "sample" zurück

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.

// Verwendung von UTF-8
$filter = new Zend_Filter_StringToLower('UTF-8');

// Oder ein Array angeben was bei der Verwendung einer
// Konfiguration nützlich sein kann
$filter = new Zend_Filter_StringToLower(array('encoding' => 'UTF-8'));

// Oder im Nachinein
$filter->setEncoding('ISO-8859-1');

Hinweis: Falsche Kodierungen setzen

Man sollte darauf achten das man eine Exception bekommt wenn man eine Kodierung setzt, solange die mbstring Erweiterung in der eigenen Umgebung nicht vorhanden ist.

Auch wenn man eine Kodierung setzt, welche von der mbstring Erweiterung nicht unterstützt wird, erhält man eine Exception.

StringToUpper

Dieser Filter konvertiert alle Eingaben so das Sie großgeschrieben sind.

$filter = new Zend_Filter_StringToUpper();

print $filter->filter('Sample');
// gibt "SAMPLE" zurück

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.

$filter = new Zend_Filter_StringToUpper(array('encoding' => 'UTF-8'));

// oder im Nachhinein
$filter->setEncoding('ISO-8859-1');

StringTrim

Dieser Filter verändert einen angegebenen String so dass bestimmte Zeichen vom Anfang und vom Ende entfernt werden.

Unterstützte Optionen für Zend_Filter_StringTrim

Die folgenden Optionen werden für Zend_Filter_StringTrim unterstützt:

  • charlist: Liste der Zeichen welche vom Anfang und vom Ende des Strings entfernt werden sollen. Wenn sie nicht gesetzt wird oder null ist, wird das Standardverhalten verwendet, welches nur Leerzeichen vom Beginn und vom Ende des Strings entfernt.

Einfache Verwendung

Ein einfaches Beispiel der Verwendung ist nachfolgend zu finden:

$filter = new Zend_Filter_StringTrim();

print $filter->filter(' Das ist (mein) Inhalt: ');

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

$filter = new Zend_Filter_StringTrim(':');
// oder new Zend_Filter_StringTrim(array('charlist' => ':'));

print $filter->filter(' Das ist (mein) Inhalt:');

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.

StripNewlines

Gibt den String $value ohne Zeilenumbruch Zeichen zurück.

StripTags

Dieser 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.

Previous Next
Einführung zum Zend Framework
Übersicht
Installation
Einstieg ins Zend Framework
Schnellstart in den Zend Framework
Zend Framework & MVC Einführung
Das Projekt erstellen
Ein Layout erstellen
Ein Modell und eine Datenbank Tabelle erstellen
Erstellen eines Formulars
Gratulation!
Autoloading im Zend Framework
Einführung
Ziele und Design
Grundsätzliche Verwendung von Autoloadern
Automatisches Laden von Ressourcen
Zusammenfassung
Plugins im Zend Framework
Einführung
Verwenden von Plugins
Fazit
Einstieg in Zend_Layout
Einführung
Zend_Layout verwenden
Zend_Layout: Fazit
Einstieg in Zend_View Platzhalter
Einführung
Grundsätzliche Verwendung von Platzhaltern
Standard Platzhalter
View Platzhalter: Fazit
Zend_Form's Gestalter (Decorator) verstehen und verwenden
Einführung
Decorator Grundlagen
Layeraufbau von Decorators
Darstellung individueller Decorators
Erstellung und Darstellung von kombinierten Elementen
Fazit
Einstieg in Zend_Session, Zend_Auth, und Zend_Acl
Erstellung von Multi-User Anwendungen mit Zend Framework
User Session im Zend Framework managen
Benutzer im Zend Framework authentifizieren
Erstellung eines Authorisations Systems in Zend Framework
Einstieg in Zend_Search_Lucene
Einführung in Zend_Search_Lucene
Lucene Index Struktur
Indezes öffnen und erstellen
Indizierung
Suchen
Unterstützte Abfragen
Seitendarstellung von Suchergebnissen
Einstieg in Zend_Paginator
Einführung
Einfaches Beispiel
Seitenkontrolle und ScrollingStyles
Alles zusammenfügen
Zend Framework's Referenz
Zend_Acl
Einführung
Verfeinern der Zugriffskontrolle
Fortgeschrittene Verwendung
Zend_Amf
Einführung
Zend_Amf_Server
Zend_Application
Einführung
Zend_Application Quick Start
Theorie der Funktionsweise
Beispiele
Kern Funktionalität
Vorhandene Ressource Plugins
Zend_Auth
Einführung
Datenbanktabellen Authentifizierung
Digest Authentication
HTTP Authentication Adapter
LDAP Authentifizierung
Open ID Authentifikation
Zend_Barcode
Einführung
Barcodes mit Hilfe der Zend_Barcode Klasse erstellen
Zend_Barcode Objekte
Zend_Barcode Renderer
Zend_Cache
Einführung
Die Theorie des Cachens
Zend_Cache Frontends
Zend_Cache Backends
Der Cache Manager
Zend_Captcha
Einführung
Captcha Anwendung
CAPTCHA Adapter
SimpleCloud API: Zend_Cloud
Document Service Introduction
Queue Service Introduction
StorageService Introduction
Zend_CodeGenerator
Einführung
Zend_CodeGenerator Beispiele
Zend_CodeGenerator Referenz
Zend_Config
Einleitung
Theory of Operation
Zend_Config_Ini
Zend_Config_Json
Zend_Config_Xml
Zend_Config_Yaml
Zend_Config_Writer
Zend_Config_Writer
Zend_Console_Getopt
Einführung
Definieren von Getopt Regeln
Holen von Optionen und Argumenten
Konfigurieren von Zend_Console_Getopt
Zend_Controller
Zend_Controller Schnellstart
Zend_Controller Grundlagen
Der Front Controller
Das Request Objekt
Der Standard Router
Der Dispatcher
Action Controller
Action Helfer
Das Response Objekt
Plugins
Eine konventionelle modulare Verzeichnis Struktur verwenden
MVC Ausnahmen
Zend_Currency
Einführung in Zend_Currency
Zend_Currency verwenden
Optionen für Währungen
Was macht eine Währung aus?
Wo ist die Währung?
Wie sieht die Währung aus?
Wie viel Währung habe ich?
Rechnen mit Währungen
Währungen wechseln
Zusätzliche Informationen für Zend_Currency
Zend_Date
Einführung
Theorie der Arbeitsweise
Basis Methoden
Zend_Date API Übersicht
Erstellen von Datumswerten
Konstanten für generelle Datums Funktionen
Funktionierende Beispiele
Zend_Db
Zend_Db_Adapter
Zend_Db_Statement
Zend_Db_Profiler
Zend_Db_Select
Zend_Db_Table
Zend_Db_Table_Row
Zend_Db_Table_Rowset
Zend_Db_Table Relationships
Zend_Db_Table_Definition
Zend_Debug
Variablen ausgeben
Zend_Dojo
Einführung
Zend_Dojo_Data: dojo.data Envelopes
Dojo View Helfer
Formular Elemente und Dekoratore für Dojo
Support für den Build Layer von Zend_Dojo
Zend_Dom
Einführung
Zend_Dom_Query
Zend_Exception
Verwenden von Ausnahmen
Grundsätzliche Verwendung
Vorherige Exceptions
Zend_Feed
Einführung
Feeds importieren
Feeds von Websites abrufen
Einen RSS Feed konsumieren
Einen Atom Feed konsumieren
Einen einzelnen Atom Eintrag konsumieren
Verändern der Feed- und Eintragsstruktur
Eigene Klassen für Feeds und Einträge
Zend_Feed_Reader
Zend_Feed_Writer
Zend_Feed_Pubsubhubbub
Zend_File
Zend_File_Transfer
Prüfungen für Zend_File_Transfer
Filter für Zend_File_Transfer
Zend_Filter
Einführung
Standard Filter Klassen
Filter Ketten
Filter schreiben
Zend_Filter_Input
Zend_Filter_Inflector
Zend_Form
Zend_Form
Schnellstart mit Zend_Form
Erstellen von Form Elementen mit Hilfe von Zend_Form_Element
Erstellen von Form durch Verwendung von Zend_Form
Erstellen von eigenem Form Markup durch Zend_Form_Decorator
Standard Form Elemente die mit dem Zend Framework ausgeliefert werden
Standard Formular Dekoratoren die mit dem Zend Framework ausgeliefert werden
Internationalisierung von Zend_Form
Fortgeschrittene Verwendung von Zend_Form
Zend_Gdata
Einführung
Authentifizierung mit AuthSub
Die Buchsuche Daten API verwenden
Authentifizieren mit ClientLogin
Google Kalender verwenden
Verwenden der Google Dokumente Listen Daten API
Verwenden von Google Health
Google Tabellenkalkulation verwenden
Google Apps Provisionierung verwenden
Google Base verwenden
Picasa Web Alben verwenden
Verwenden der YouTube Daten API
Gdata Ausnahmen auffangen
Zend_Http
Einführung
Zend_Http_Client - Fortgeschrittende Nutzung
Zend_Http_Client - Verbindungsadapter
Zend_Http_Cookie und Zend_Http_CookieJar
Zend_Http_Response
Zend_Http_UserAgent
The UserAgent Device Interface
The UserAgent Features Adapter
The WURFL UserAgent Features Adapter
The DeviceAtlas UserAgent Features Adapter
The TeraWurfl UserAgent Features Adapter
The UserAgent Storage Interface
The Session UserAgent Storage Adapter
Zend_InfoCard
Einführung
Zend_Json
Einführung
Grundlegende Verwendung
Fortgeschrittene Verwendung von Zend_Json
XML zu JSON Konvertierung
Zend_Json_Server - JSON-RPC Server
Zend_Layout
Einführung
Zend_Layout Schnellstart
Zend_Layout Konfigurations Optionen
Erweiterte Verwendung von Zend_Layout
Zend_Ldap
Einführung
API Übersicht
Szenarien der Verwendung
Tools
Objektorientierter Zugriff auf den LDAP Baum durch Verwendung von Zend_Ldap_Node
Informationen vom LDAP Server erhalten
Serialisieren von LDAP Daten von und zu LDIF
Zend_Loader
Dynamisches Laden von Dateien und Klassen
Der Autoloader
Ressource Autoloader
Plugins laden
Zend_Locale
Einführung
Zend_Locale verwenden
Normalisierung und Lokalisierung
Arbeiten mit Daten und Zeiten
Unterstützte Gebietsschemata
Zend_Log
Übersicht
Writer
Formatter
Filter
Die Factory verwenden um ein Log zu erstellen
Zend_Mail
Einführung
Versand über SMTP
Versand von mehreren E-Mails über eine SMTP Verbindung
Verwendung von unterschiedlichen Versandwegen
HTML E-Mail
Anhänge
Empfänger hinzufügen
Die MIME Abgrenzung kontrollieren
Zusätzliche Kopfzeilen
Zeichensätze
Kodierung
SMTP Authentifizierung
SMTP Übertragungen sichern
Lesen von Mail Nachrichten
Zend_Markup
Einführung
Beginnen mit Zend_Markup
Zend_Markup Parser
Zend_Markup Renderer
Zend_Measure
Einführung
Erstellung einer Maßeinheit
Ausgabe von Maßeinheiten
Manipulation von Maßeinheiten
Arten von Maßeinheiten
Zend_Memory
Übersicht
Memory Manager
Memory Objekte
Zend_Mime
Zend_Mime
Zend_Mime_Message
Zend_Mime_Part
Zend_Navigation
Einführung
Seiten
Container
Zend_Oauth
Einführung zu OAuth
Zend_OpenId
Einführung
Zend_OpenId_Consumer Grundlagen
Zend_OpenId_Provider
Zend_Paginator
Einführung
Verwendung
Konfiguration
Advanced usage
Zend_Pdf
Einführung
Erstellen und Laden von PDF Dokumenten
Änderungen an PDF Dokumenten speichern
Arbeiten mit Seiten
Zeichnen
Interaktive Features
Dokument Informationen und Metadaten
Anwendungsbeispiel für die Zend_Pdf Komponente
Zend_ProgressBar
Zend_ProgressBar
Zend_Queue
Einführung
Beispiel der Verwendung
Framework
Adapter
Anpassen von Zend_Queue
Stomp
Zend_Reflection
Einführung
Zend_Reflection Beispiele
Zend_Reflection Referenz
Zend_Registry
Die Registry verwenden
Zend_Rest
Einführung
Zend_Rest_Client
Zend_Rest_Server
Zend_Search_Lucene
Überblick
Indexerstellung
Einen Index durchsuchen
Abfragesprache
Abfrage Erzeugungs API
Zeichensätze
Erweiterbarkeit
Zusammenarbeit Mit Java Lucene
Erweitert
Die besten Anwendungen
Zend_Serializer
Einführung
Zend_Serializer_Adapter
Zend_Server
Einführung
Zend_Server_Reflection
Zend_Service
Einführung
Zend_Service_Akismet
Zend_Service_Amazon
Zend_Service_Amazon_Ec2
Zend_Service_Amazon_Ec2: Instanzen
Zend_Service_Amazon_Ec2: Windows Instanzen
Zend_Service_Amazon_Ec2: Reservierte Instanzen
Zend_Service_Amazon_Ec2: CloudWatch Monitoring
Zend_Service_Amazon_Ec2: Amazon Maschinen Images (AMI)
Zend_Service_Amazon_Ec2: Elastischer Block Speicher (EBS)
Zend_Service_Amazon_Ec2: Elastische IP Adressen
Zend_Service_Amazon_Ec2: Schlüsselpaare
Zend_Service_Amazon_Ec2: Regionen und Availability Zones
Zend_Service_Amazon_Ec2: Sicherheitsgruppen
Zend_Service_Amazon_S3
Zend_Service_Amazon_Sqs
Zend_Service_Audioscrobbler
Zend_Service_Delicious
Zend_Service_DeveloperGarden
Zend_Service_Ebay
Zend_Service_Ebay_Finding
Zend_Service_Flickr
Zend_Service_LiveDocx
Zend_Service_Nirvanix
Zend_Service_ReCaptcha
Zend_Service_ShortUrl
Zend_Service_Simpy
Zend_Service_SlideShare
Zend_Service_StrikeIron
Zend_Service_StrikeIron: Mitgelieferte Services
Zend_Service_StrikeIron: Erweiterte Verwendung
Zend_Service_Technorati
Zend_Service_Twitter
Zend_Service_WindowsAzure
Zend_Service_WindowsAzure_Storage_Blob
Zend_Service_WindowsAzure_Diagnostics_Manager
Zend_Service_WindowsAzure_Storage_Queue
Zend_Service_WindowsAzure_Storage_Table
Zend_Service_Yahoo
Zend_Session
Einführung
Grundsätzliche Verwendung
Fortgeschrittene Benutzung
Globales Session Management
Zend_Session_SaveHandler_DbTable
Zend_Soap
Zend_Soap_Server
Zend_Soap_Client
WSDL Zugriffsmethoden
AutoDiscovery
Zend_Tag
Einführung
Zend_Tag_Cloud
Zend_Test
Einführung
Zend_Test_PHPUnit
Zend_Test_PHPUnit_Db
Zend_Text
Zend_Text_Figlet
Zend_Text_Table
Zend_TimeSync
Einführung
Arbeiten mit Zend_TimeSync
Zend_Tool
Verwendung von Zend_Tool auf der Kommandozeile
Zend_Tool erweitern
Zend_Tool_Framework
Einführung
Verwenden des CLI Tools
Architektur
Erstellen von Providern für die Verwendung mit Zend_Tool_Framework
Mitgelieferte System Provider
Extending and Configuring Zend_Tool_Framework
Zend_Tool_Project
Einführung
Ein Projekt erstellen
Project Provider für Zend_Tool
Zend_Tool_Project Internas
Zend_Translate
Einführung
Adapter für Zend_Translate
Verwendung der Übersetzungsadapter
Erstellen von Quelldateien
Zusätzliche Features für Übersetzungen
Schreibweisen von Pluralformen für Übersetzungen
Zend_Uri
Zend_Uri
Zend_Validate
Einführung
Standard Prüfklassen
Kettenprüfungen
Schreiben von Prüfern
Prüfungsmeldungen
Zend_Version
Die Version des Zend Frameworks erhalten
Zend_View
Einführung
Controller Skripte
View Scripte
View Helfer
Zend_View_Abstract
Zend_Wildfire
Zend_Wildfire
Zend_XmlRpc
Einführung
Zend_XmlRpc_Client
Zend_XmlRpc_Server
ZendX_Console_Process_Unix
ZendX_Console_Process_Unix
ZendX_JQuery
Introduction
ZendX_JQuery View Helpers
ZendX_JQuery Form Elements and Decorators
Zend Framework Voraussetzungen
Einführung
Zend Framework's Migrationshinweise
Zend Framework 1.10
Zend Framework 1.9
Zend Framework 1.8
Zend Framework 1.7
Zend Framework 1.6
Zend Framework 1.5
Zend Framework 1.0
Zend Framework 0.9
Zend Framework 0.8
Zend Framework 0.6
Zend Framework Coding Standard für PHP
Übersicht
PHP Dateiformatierung
Namens Konventionen
Code Stil
Zend Framework Dokumentations Standard
Übersicht
Formatierung von Dokumentationsdateien
Empfehlungen
Vorgeschlagene Struktur für die Projekt Struktur von Zend Framework MVC Anwendungen
Übersicht
Vorgeschlagene Verzeichnis Struktur für Projekte
Modul Struktur
Leitfaden für die Rewrite Konfiguration
Zend Framework's Performanceratgeber
Einführung
Laden von Klassen
Zend_Db Performance
Internationalisierung (I18n) und Lokalisierung (L10n)
Darstellen der View
Urheberrecht Informationen