Programmer's Reference Guide

Einführung

Standard Filter Klassen

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

Alnum

Gibt den String $value zurück und entfernt alles ausser alphabetische und nummerische Zeichen. Dieser Filter inkludiert eine Option die auch Leerzeichen erlaubt.

Hinweis: Alphabetische Zeichen bedeuten Zeichen die in jeder Spache Wörter bilden. Trotzdem wird das englische Alphabet in den folgenden Sprachen für alphabethische Zeichen verwendet: Chinesisch, Japanisch, Koreanisch. Die Sprache wurde von Zend_Locale spezifiziert.

Alpha

Gibt den String $value zurück und entfernt alles ausser alphabetische Zeichen. Dieser Filter inkludiert eine Option die auch Leerzeichen erlaubt.

BaseName

Wenn ein String einen Pfad zu einer Datei enthält gibt dieser Filter den Basisnamen der Datei zurück.

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(
    'MyMethod',
    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.

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.

// 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 alles ausser nummerische Zeichen.

Dir

Gibt den Verzeichnisnamen einer Pfadangabe 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.

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

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

HtmlEntities

Gibt den String $value zurück und konvertiert die Zeichen in Ihre entsprechende HTML Entitität wenn diese existiert.

Int

Gibt (int) $value 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 die 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

StripNewlines

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

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();

// 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();

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

StringToLower

Gibt den String $value zurück und konvertiert alphabetische Zeichen zu Kleinschreibung wenn das notwendig ist.

StringToUpper

Gibt den String $value zurück und konvertiert alphabetische Zeichen zu Großschreibung wenn das notwendig ist.

StringTrim

Gibt den String $value zurück und entfernt alle Leerzeichen vom Begin und vom Ende.

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. Und Letztendlich bietet dieser Filter Kontrolle darüber ob Kommentare (z.B., <!-- ... -->) entfernt werden oder nicht.


Einführung
blog comments powered by Disqus

Select a Version

Languages Available

Components

Search the Manual