Standard PrüfklassenZend Framework kommt mit einem Standardset von Prüfklassen, welche fertig zur Verwendung sind. AlnumZend_Validate_Alnum erlaubt es zu prüfen ob ein angegebener Wert nur alphabetische Zeichen und Ziffern enthält. Es gibt keine Begrenzung der Länge für die Eingabe welche geprüft werden soll. Unterstützte Optionen für Zend_Validate_AlnumDie folgenden Optionen werden von Zend_Validate_Alnum unterstützt:
StandardverhaltenDas folgende ist ein Standardbeispiel:
Verwendung von LeerzeichenStandardmäßig werden Leerzeichen nicht akzeptiert weil Sie nicht Teil des Alphabeths sind. Trotzdem gibt es einen Weg Sie als Eingabe zu akzeptieren. Das erlaubt es komplette Sätze oder Phrasen zu prüfen. Um die Verwendung von Leerzeichen zu erlauben muss man die Option allowWhiteSpace angeben. Das kann während der Erstellung einer Instanz des Prüfers getan werden, oder im Nachhinein indem setAllowWhiteSpace() verwendet wird. Um den aktuellen Zustand zu erhalten kann getAllowWhiteSpace() verwendet werden.
Andere Sprachen verwendenWenn Zend_Validate_Alnum verwendet wird dann wird jene Sprache verwendet, welche der Benutzer in seinem Browser gesetzt hat, um die erlaubten Zeichen zu setzen. Das bedeutet, wenn ein Benutzer de für Deutsch setzt dann kann er auch Zeichen wie ä, ö und ü zusätzlich zu den Zeichen des englischen Alphabeths setzen. Welche Zeichen erlaubt sind hängt komplett von der verwendeten Sprache ab, da jede Sprache Ihr eigenes Set von Zeichen definiert. Es gibt aktuell 3 Sprachen welche nicht mit Ihrer eigenen Schreibweise akzeptiert werden. Diese Sprachen sind koreanisch, japanisch und chinesisch, da diese Sprachen ein Alphabeth verwenden bei dem einzelne Zeichen so aufgebaut werden dass Sie mehrere Zeichen verwenden. Im Falle das diese Sprachen verwendet werden wird der Inhalt nur durch Verwendung des englischen Alphabeths geprüft. AlphaZend_Validate_Alpha erlaubt es zu prüfen ob ein angegebener Wert nur alphabetische Zeichen enthält. Es gibt keine Begrenzung der Länge für die Eingabe welche man prüfen will. Diese Prüfung ist ähnlich wie die Zend_Validate_Alnum Prüfung mit der Ausnahme dass Sie keine Ziffern akzeptiert. Unterstützte Optionen für Zend_Validate_AlphaDie folgenden Optionen werden von Zend_Validate_Alpha unterstützt:
StandardverhaltenDas folgende ist ein standardmäßiges Beispiel:
Verwendung von LeerzeichenStandardmäßig werden Leerzeichen nicht akzeptiert weil Sie nicht Teil des Alphabeths sind. Trotzdem gibt es einen Weg Sie als Eingabe zu akzeptieren. Das erlaubt es komplette Sätze oder Phrasen zu prüfen. Um die Verwendung von Leerzeichen zu erlauben muss man die Option allowWhiteSpace angeben. Das kann während der Erstellung einer Instanz des Prüfers getan werden, oder im Nachhinein indem setAllowWhiteSpace() verwendet wird. Um den aktuellen Zustand zu erhalten kann getAllowWhiteSpace() verwendet werden.
Andere Sprachen verwendenWenn Zend_Validate_Alpha verwendet wird dann wird jene Sprache verwendet, welche der Benutzer in seinem Browser gesetzt hat, um die erlaubten Zeichen zu setzen. Das bedeutet, wenn ein Benutzer de für Deutsch setzt dann kann er auch Zeichen wie ä, ö und ü zusätzlich zu den Zeichen des englischen Alphabeths setzen. Welche Zeichen erlaubt sind hängt komplett von der verwendeten Sprache ab, da jede Sprache Ihr eigenes Set von Zeichen definiert. Es gibt aktuell 3 Sprachen welche nicht mit Ihrer eigenen Schreibweise akzeptiert werden. Diese Sprachen sind koreanisch, japanisch und chinesisch, da diese Sprachen ein Alphabeth verwenden bei dem einzelne Zeichen so aufgebaut werden dass Sie mehrere Zeichen verwenden. Im Falle das diese Sprachen verwendet werden wird der Inhalt nur durch Verwendung des englischen Alphabeths geprüft. BarcodeZend_Validate_Barcode erlaubt es zu prüfen ob ein gegebener Wert als Barcode repräsentiert werden kann. Zend_Validate_Barcode unterstützt viele Barcode Standards und kann sehr einfach mit prorietären Barcode Implementationen erweitert werden. Die folgenden Barcode Standards werden unterstützt:
Unterstützte Optionen für Zend_Validate_BarcodeDie folgenden Optionen werden für Zend_Validate_Barcode unterstützt:
Grundsätzliche VerwendungUm zu prüfen ob ein angegebener String ein Barcode ist muss man nur dessen Typ wissen. Siehe das folgende Beispiel für einen EAN13 Barcode:
Optionale ChecksummeEinige Barcodes können mit einer optionalen Checksumme angegeben werden. Diese Barcodes würden gültig sein, selbst ohne Checksumme. Trotzdem, wenn eine Checksumme angegeben wird, dann sollte man Sie auch prüfen. Standardmäßig führen diese Barcode Typen keine Prüfung der Checksumme durch. Durch Verwendung der Option checksum kann man definieren ob die Checksumme geprüft oder ignoriert wird.
Schreiben eigener AdapterMan kann eigene Barcode Prüfungen für die Verwendung mit Zend_Validate_Barcode schreiben; das ist oft notwendig wenn man mit proprietären Barcodes arbeiten muss. Um eine eigene Barcode Prüfung zu schreiben benötigt man die folgenden Informationen.
Die eigene Barcode Prüfung muss Zend_Validate_Barcode_AdapterAbstract erweitern oder Zend_Validate_Barcode_AdapterInterface implementieren. Als Beispiel, erstellen wir eine Prüfung welche eine gerade Anzahl an Zeichen erwartet welche alle Ziffern und die Zeichen 'ABCDE' enthalten kann, und die eine Checksumme benötigt.
BetweenZend_Validate_Between erlaubt es zu prüfen ob ein angegebener Wert zwischen zwei anderen Werten ist.
Unterstützte Optionen für Zend_Validate_BetweenDie folgenden Optionen werden für Zend_Validate_Between unterstützt:
Standardverhalten für Zend_Validate_BetweenStandardmäßig prüft diese Prüfung ob ein Wert zwischen min und max liegt wobei beide Grenzwerte als Wert erlaubt sind.
Im oben stehenden Beispiel ist das Ergebnis TRUE da die Suche standardmäßig inklusive den Grenzwerten stattfindet. Das bedeutet in unserem Fall das jeder Wert zwischen '0' und '10' erlaubt ist. Und Werte wie '-1' und '11' geben FALSE zurück. Prüfung exklusive den GrenzwertenManchmal ist es nützlich einen Wert zu prüfen wobei die Grenzwerte exkludiert werden. Siehe das folgende Beispiel:
Das Beispiel ist fast so ähnlich wie unser erstes Beispiel, aber wir haben die Grenzwerte ausgeschlossen. Jetzt sind die Werte '0' und '10' nicht mehr erlaubt und geben FALSE zurück. CallbackZend_Validate_Callback erlaubt es einen Callback anzugeben der verwendet wird um einen angegebenen Wert zu prüfen. Unterstützte Optionen für Zend_Validate_CallbackDie folgenden Optionen werden für Zend_Validate_Callback unterstützt:
Grundsätzliche VerwendungDer einfachste Anwendungsfall besteht darin eine einzelne Funktion zu haben und diese als Callback zu verwenden. Angenommen wir haben die folgende Funktion.
Um diese in Zend_Validate_Callback zu verwenden muss man Sie nur auf folgende Weise aufrufen:
Verwendung mit ClosuresPHP 5.3 führt » Closures ein, welche grundsätzlich selbst-enthaltene oder anonyme Funktionen sind. PHP nimmt an das Closures eine andere Form eines Callbacks sind, und können daher als solche mit Zend_Validate_Callback verwendet werden. Als Beispiel:
Verwendung mit klassenbasierten CallbacksNatürlich ist es auch möglich eine Klassenmethode als Callback zu verwenden. Angenommen wir haben die folgende Klassenmethode:
Die Definition des Callbacks ist in diesem Fall fast die gleiche. Man muss nur eine Instanz der Klasse vor der Methode erstellen und ein Array das den Callback beschreibt:
Man kann auch eine statische Methode als Callback definieren. Angenommen wir haben die folgende Klassendefinition dann ist die Verwendung des Prüfers wie folgt:
Letztendlich kann man, wenn man PHP 5.3 verwendet, die magische Methode __invoke() in der eigenen Klasse definieren. Wenn man das tut dann funktioniert die Angabe einer Instanz der Klasse genauso:
Optionen hinzufügenZend_Validate_Callback erlaubt auch die Verwendung von Optionen welche als zusätzliche Argumente dem Callback übergeben werden. Nehmen wir die folgende Klassen und Methoden Definition an:
Es gibt zwei Wege um den Prüfer über zusätzliche Optionen zu informieren: Diese im Constructor übergeben, oder Sie mit der Methode setOptions() übergeben. Um Sie im Contructor zu übergeben, muss ein Array übergeben werden das die zwei Schlüssel "callback" und "options" enthält:
Andererseits können Sie dem Prüfer auch nach der Instanzierung übergeben werden:
Wenn zusätzliche Werte an isValid() übergeben werden, dann werden diese Werte unmittelbar nach $value hinzugefügt.
Wenn der Aufruf zu einem Callback durchgeführt wird, dann wird der Wert der zu überprüfen ist als erstes Argument an den Callback übergeben gefolgt von allen anderen Werten die an isValid() übergeben wurden; alle anderen Optionen folgen Ihm. Die Anzahl und der Typ der Optionen welche verwendet werden ist nicht limitiert. CreditCardZend_Validate_CreditCard erlaubt es zu prüfen ob ein angegebener Wert eine Kreditkarten Nummer sein könnte. Eine Kreditkarte enthält verschiedene Elemente an Metadaten, inklusive ein Hologramm, die Accountnummer, Logo, Ablaufdatum, Sicherheitscode und den Namen des Kreditkartenbesitzers. Die Algorithmen für die Prüfung der Kombination an Metadaten sind nur der ausgebenden Firma bekannt, und sollten mit Ihnen zum Zwecke der Zahlung geprüft werden. Trotzdem ist es oft nützlich zu wissen ob eine akutell angegebene Nummer in den Bereich der möglichen Nummern fällt bevor so eine Überprüfung durchgeführt wird, und daher prüft Zend_Validate_CreditCard einfach ob die angegebene Kreditkartennummer entspricht. Für die Fälle in denen man ein Service hat, das tiefere Prüfungen durchführt, bietet Zend_Validate_CreditCard auch die Möglichkeit einen Service Callback anzuhängen der ausgeführt wird sobald die Kreditkartennummer vorbehaltlich als gültig geprüft wurde; dieser Callback wird dann ausgeführt, und sein Rückgabewert wird die komplette Gültigkeit erkennen. Die folgenden Kreditkarteninstitute werden akzeptiert:
Unterstützte Optionen für Zend_Validate_CreditCardDie folgenden Optionen werden für Zend_Validate_CreditCard unterstützt:
Grundsätzliche VerwendungEs gibt verschiedene Kreditkarten Institute wie mit Zend_Validate_CreditCard geprüft werden können. Standardmäßig werden alle bekannte Institute akzeptiert. Siehe das folgende Beispiel:
Das oben stehende Beispiel würde alle bekannten Kreditkarten Institute als gültig erkennen. Definierte Kreditkarte akzeptierenManchmal ist es notwendig nur definierte Kreditkarten Institute zu akzeptieren statt alle; z.B wenn man einen Webshop hat der nur Visa und American Express Karten akzeptiert. Zend_Validate_CreditCard erlaubt einem exakt das zu tun, indem auf genau diese Institute limitiert wird. Um ein Limit zu verwenden kann man entweder spezifische Institute bei der Initiierung angeben, oder im nachhinein durch Verwendung von setType(). Jede kann verschiedene Argumente verwenden. Man kann ein einzelnes Institut angeben: Wenn man mehrere Institute erlauben will, dann kann man diese als Array angeben: Wie bei allen Prüfern kann man auch ein assoziatives Array an Optionen oder eine Instanz von Zend_Config angeben. In diesem Fall muß man die Institute mit dem Arrayschlüssel type angeben wie hier simuliert:
Man kann Institute auch im Nachhinein setzen oder hinzufügen indem die Methoden setType(), addType() und getType() verwendet werden.
Prüfung durch Verwendung einer fremden APIWie vorher erwähnt prüft Zend_Validate_CreditCard nur die Kreditkarten Nummer. Glücklicherweise bieten einige Institute online APIs welche eine Kreditkarten Nummer durch Verwendung von Algorithmen prüfen kann, welche nicht öffentlich bekannt sind. Die meisten dieser Services sind zu bezahlen. Deshalb ist diese Art der Prüfung standardmäßig deaktiviert. Wenn man auf so eine API zugreift, kann man diese als Addon für Zend_Validate_CreditCard verwenden um die Sicherheit der Prüfung zu erhöhen. Um das zu tun muss man einfach einen Callback angeben der aufgerufen wird wenn die generische Prüfung erfolgreich war. Das verhindert das die API für ungültige Nummern aufgerufen wird, was wiederum die Performance der Anwendung erhöht. setService() setzt ein neues Service und getService() gibt das gesetzte Service zurück. Als Option für die Konfiguration kann man den Arrayschlüssel 'service' bei der Initiierung verwenden. Für Details über mögliche Optionen kann man unter Callback nachsehen.
Wie man sieht wird die Callback Methode mit der Kreditkarten Nummer als erster Parameter aufgerufen, und die akzeptierten Typen als zweiter Parameter. Ccnum
DateZend_Validate_Date erlaubt es zu prüfen ob ein angegebener Wert ein Datum enthält. Diese Prüfung prüft auch lokalisierte Eingaben. Unterstützte Optionen für Zend_Validate_DateDie folgenden Optionen werden für Zend_Validate_Date unterstützt:
Standardmäßige DatumsprüfungDer einfachste Weg um ein Datum zu prüfen ist die Verwendung des Standardmäßigen Datumsformats. Dieses wird verwendet wenn kein Gebietsschema und kein Format angegeben werden.
Das standardmäßige Datumsformat für Zend_Validate_Date ist 'yyyy-MM-dd'. Lokalisierte DatumsprüfungZend_Validate_Date prüft auch Daten welche in einem lokalisierten Format angegeben werden. Durch Verwendung der Option locale kann das Gebietsschema definiert werden von dem das Datumsformat für die Prüfung verwendet werden soll.
Die Option locale setzt das standardmäßige Datumsformat. Im obigen Beispiel ist dies 'dd.MM.yyyy' welches als Standardmäßige Datumsformat für 'de' definiert ist. Selbst definierte DatumsprüfungZend_Validate_Date unterstützt auch selbst definierte Datumsformate. Wenn man solch ein Datum prüfen will muss man die Option format verwenden.
Natürlich kann man format und locale kombinieren. In diesem Fall kann man lokalisierte Monats- oder Tagesnamen verwenden.
Db_RecordExists und Db_NoRecordExistsZend_Validate_Db_RecordExists und Zend_Validate_Db_NoRecordExists bieten die Möglichkeit zu testen ob ein Eintrag in einer angegebenen Tabelle einer Datenbank, mit einem gegebenen Wert, existiert. Unterstützte Optionen für Zend_Validate_Db_*Die folgenden Optionen werden für Zend_Validate_Db_NoRecordExists und Zend_Validate_Db_RecordExists unterstützt:
Grundsätzliche VerwendungEin Beispiel der rundsätzlichen Verwendung der Validatoren:
Das oben stehende testet ob eine gegebene Email Adresse in der Datenbanktabelle vorhanden ist. Wenn kein Eintrag gefunden wird der den Wert von $emailaddress in der spezifizierten Spalte hat, wird eine Fehlermeldung angezeigt.
Das oben stehende testet ob ein angegebener Benutzername nicht in der Datenbanktabelle vorhanden ist. Wenn ein Eintrag gefunden wird, der den der von $username in der spezifizierten Spalte enthält, dann wird eine Fehlermeldung angezeigt. Ausnehmen von EinträgenZend_Validate_Db_RecordExists und Zend_Validate_Db_NoRecordExists bieten auch die Möglichkeit die Datenbank zu testen, wobei Teile der Tabelle hiervon ausgenommen werden, entweder indem eine where Klausel als String angegeben wird, oder ein Array mit den Schlüsseln "field" und "value". Wenn ein Array für die Ausnahmeklausel angegeben wird, dann wird der != Operator verwenden. Damit kann der Rest einer Tabelle auf einen Wert geprüft werden bevor ein Eintrag geändert wird (zum Beispiel in einem Formular für ein Benutzerprofil).
Das obige Beispiel prüft die Tabelle um sicherzustellen das keine anderen Einträge existieren bei denen id = $user_id als Wert $username enthalten. Man kann auch einen String an die Ausnahmeklausel angeben damit man einen anderen Operator als != verwenden kann. Das kann nützlich sein um bei geteilten Schlüsseln zu testen.
Das obige Beispiel prüft die Tabelle 'posts_categories' und stellt sicher das ein Eintrag der 'post_id' einen Wert hat der $category_id entspricht. Datenbank AdapterMan kann auch einen Adapter spezifizieren wenn man die Prüfung instanziiert. Das erlaubt es mit Anwendungen zu arbeiten die mehrere Datenbankadapter verwenden, oder wo kein Standardadapter gesetzt wird. Als Beispiel:
Datenbank SchemasMan kann für die eigene Datenbank bei Adaptern wie PostgreSQL und DB/2 ein Schema spezifizieren indem einfach ein Array mit den Schlüsseln table und schema angegeben wird. Anbei ein Beispiel:
DigitsZend_Validate_Digit prüft ob ein angegebener Wert nur Ziffern enthält. Unterstützte Optionen für Zend_Validate_DigitsEs gibt keine zusätzlichen Optionen für Zend_Validate_Digits: Prüfen von ZiffernUm zu prüfen ob ein angegebener Wert nur Ziffern und keine anderen Zeichen enthält, muss die Prüfung einfach wie in diesem Beispiel gezeigt aufgerufen werden:
Email AdresseZend_Validate_EmailAddress erlaubt die Prüfung von Email Adressen. Der Prüfer teilt zuerst die Email Adresse in lokalen Teil @ hostname und versucht diese mit bekannten Spezifikationen für Email Adressen und Hostnamen zu prüfen. Normale VerwendungEin Beispiel einer normalen Benutzung ist anbei:
Das prüft die Email Adresse $email und gibt bei einem Fehler über getMessages() eine nützliche Fehlermeldung aus. Optionen für die Prüfung von Email AdressenZend_Validate_EmailAddress unterstützt verschiedene Optionen welche entweder bei der Initiierung, durch Übergeben eines Arrays mit den betreffenden Optionen, gesetzt werden können, oder im Nachhinein, durch Verwendung von setOptions(). Die folgenden Optionen werden unterstützt:
Komplexe lokale AbschnitteZend_Validate_EmailAdress prüft jede gültige Email Adresse mit RFC2822. Gültige Email Adressen sind zum Beispiel bob@domain.com, bob+jones@domain.us, "bob@jones"@domain.com und "bob jones"@domain.com. Einige Email Formate werden aktuell nicht geprüft (z.B. Zeilenumbruch Zeichen oder ein "\" Zeichen in einer Email Adresse). Nur den lokalen Teil prüfenWenn man will das Zend_Validate_EmailAddress nur den lokalen Teil der Email Adresse prüfen soll, und die Prüfung des Hostnamens ausschalten will, kann man die domain Option auf FALSE setzen. Das zwingt Zend_Validate_EmailAddress den Hostname Teil der Email Adresse nicht zu prüfen.
Prüfen von unterschiedlichen Typen von HostnamenDer Teil des Hostnamens einer Email Adresse wird mit Zend_Validate_Host geprüft. Standardmäßig werden nur DNS Hostnamen in der Form domain.com akzeptiert, aber wenn es gewünscht ist, können auch IP Adressen und lokale Hostnamen auch akzeptiert werden. Um das zu tun, muß eine Zend_Validate_EmailAddress Instanz erstellt werden der ein Parameter übergeben wird, um den Typ des Hostnamens anzugeben der akzeptiert werden soll. Mehr Details sind in Zend_Validate_Hostname inkludiert, zusammen mit einem Beispiel, wie DNS und lokale Hostnamen, akzeptiert werden wie im Beispiel das anbei steht:
Prüfen ob der Hostname aktuell Emails akzeptiertNur weil eine Email Adresse im richtigen Format ist, heißt das notwendigerweise nicht das die Email Adresse aktuell auch existiert. Um dieses Problem zu lösen, kann MX Prüfung verwendet werden um zu prüfen ob ein MX (Email) Eintrag im DNS Eintrag für den Hostnamen der Email existiert. Das zeigt ob der Hostname Emails akzeptiert, sagt aber nicht aus, ob die genaue Email Adresse selbst gültig ist. Die MX Prüfung ist standardmäßig nicht eingeschaltet. Um die MX Prüfung einzuschalten kann ein zweiter Parameter an den Zend_Validate_EmailAddress Konstruktor übergeben werden.
Alternativ kann entweder TRUE oder FALSE an setValidateMx() übergeben werden um die MX Prüfung ein- oder auszuschalten. Durch das einschalten dieser Option werden Netzwerk Funktionen verwendet um zu Prüfen ob ein MX Eintrag am Hostnamen der Email Adresse existiert, welche geprüft werden soll. Vorsicht davor, das hierbei das eigene Skript langsamer wird. Manchmal gibt die Prüfung auf MX Records FALSE zurück, selbst wenn Emails akzeptiert werden. Der Hintergrund dieses Verhaltens ist, das der Server Emails akzeptieren kann, selbst wenn er keinen MX Record anbietet. In diesem Fall kann er A, A6 oder AAAA Records anbieten. Um es Zend_Validate_EmailAddress zu erlauben auch auf diese anderen Records zu prüfen, muss man die tiefe MX Prüfung einschalten. Das kann man durch Setzen der deep Option bei der Initialisierung, oder durch Verwendung von setOptions() tun.
Warning
Performance WarnungMan sollte darauf achten das die Aktivierung der MX Prüfung das Skript langsamer machen wird, weil es Netzwerk Funktionen verwendet. Die Aktivierung der tiefen Prüfung macht das Skript sogar noch langsamer da es im angegebenen Server nach 3 zusätzlichen Typen sucht.
Internationale Domain Namen prüfenZend_Validate_EmailAddress prüft auch internationale Zeichen prüfen, die in einigen Domains existieren. Dies ist als Unterstützung für Internationale Domain Namen (IDN) bekannt. Standardmäßig ist das eingeschaltet. Das kann aber ausgeschaltet werden indem eine Einstellung geändert wird über das interne Zend_Validate_Hostname Objekt das innerhalb von Zend_Validate_EmailAddress existiert. Weitere Informationen über die Verwendung von setValidateIdn() gibt es in der Zend_Validate_Hostname Dokumentation. Es sollte darauf geachtet werden das IDNs nur geprüft werden wenn erlaubt ist DNS Hostnamen zu prüfen. Top Level Domains prüfenStandardmäßig wird ein Hostname mit einer List von bekannten TLDs geprüft. Das ist standardmäßig aktiviert, kann aber ausgeschaltet werden indem die Einstellung über das interne Zend_Validate_Hostname geändert wird, das innerhalb von Zend_Validate_EmailAddress existiert. Mehr Informationen über die Verwendung von setValidateTld() gibt es in der Zend_Validate_Hostname Dokumentation. Es sollte darauf geachtet werden das TLDs nur geprüft werden wenn es auch erlaubt ist DNS Hostnamen zu prüfen. Setzen von MeldungenZend_Validate_EmailAddress verwendet auch Zend_Validate_Hostname um den Teil des Hostnamens einer angegebenen Email Adresse zu prüfen. Ab Zend Framework 1.10 kann man Meldungen für Zend_Validate_Hostname auch von innerhalb Zend_Validate_EmailAddress setzen.
Vor Zend Framework 1.10 musste man die Meldungen einem eigenen Zend_Validate_Hostname hinzufügen, und dann diese Prüfung in Zend_Validate_EmailAddress setzen um die eigenen Meldungen zurückzubekommen. FloatZend_Validate_Float erlaubt es zu prüfen ob ein angegebener Wert eine Gleitkommazahl enthält. Diese Prüfung kann auch lokalisierte Eingaben prüfen. Unterstützte Optionen für Zend_Validate_FloatDie folgenden Optionen werden für Zend_Validate_Float unterstützt:
Einfache Float PrüfungDer einfachste Weg eine Gleitkommazahl zu prüfen ist die Verwendung der Systemeinstellungen. Wenn keine Option verwendet wird, dann wird das Gebietsschema der Umgebung für die Prüfung verwendet:
Im obigen Beispiel wird in der Umgebung das Gebietsschema "en" erwartet. Lokalisierte Prüfung von GleitkommazahlenOft ist es nützlich in der Lage zu sein lokalisierte Werte zu prüfen. Gleitkommazahlen werden in anderen Ländern oft unterschiedlich geschrieben. Wird zum Beispiel englisch verwendet wird "1.5" geschrieben. Im deutschen wird man "1,5" schreiben und in anderen Sprachen können Gruppierungen verwendet werden. Zend_Validate_Float ist in der Lage solche Schreibweisen zu verwenden. Aber es ist auf das Gebietsschema begrenzt welches man verwendet. Siehe den folgenden Code:
Bei Verwendung eines Gebietsschemas wird die Eingabe, wie man sehen kann lokalisiert geprüft. Bei Verwendung einer anderen Schreibweise erhält man ein FALSE wenn das Gebietsschema eine andere Schreibweise erzwingt. Das Gebietsschema kann auch im Nachhinein gesetzt werden indem setLocale() verwendet wird, und empfangen indem man getLocale() verwendet. GreaterThanZend_Validate_GreaterThan ermöglicht die Überprüfung, ob ein angegebener Wert größer ist als ein minimaler Grenzwert.
Unterstützte Optionen für Zend_Validate_GreaterThanDie folgenden Optionen werden von Zend_Validate_GreaterThan unterstützt:
Grundsätzliche VerwendungUm zu prüfen ob ein angegebener Wert größer als eine definierte Grenze ist, kann einfach das folgende Beispiel verwendet werden.
Das obige Beispiel gibt für alle Werte TRUE zurück die größer als 10 sind.
Das obige Beispiel gibt für alle Werte FALSE zurück die kleiner oder gleich dem Grenzwert sind. HexZend_Validate_Hex erlaubt es zu prüfen ob ein angegebener Wert nur hexadezimale Zeichen enthält. Das sint alle Zeichen von 0 bis 9 und unabhängig von der Schreibweise A bis F. Es gibt keine Begrenzung der Länge für den Wert welchen man prüfen will.
Unterstützte Optionen für Zend_Validate_HexEs gibt keine zusätzlichen Optionen für Zend_Validate_Hex: HostnameZend_Validate_Hostname erlaubt die Prüfung von Hostnamen mit einem Set von bekannten Spezifikationen. Es ist möglich drei verschiedene Typen von Hostnamen zu Prüfen: einen DNS Hostnamen (z.b. domain.com), IP Adressen (z.B. 1.2.3.4), und lokale Hostnamen (z.B. localhost). Standarmäßig werden nur DNS Hostnamen geprüft. Unterstützte Optionen für Zend_Validate_HostnameDie folgenden Optionen werden für Zend_Validate_Hostname unterstützt:
Normale VerwendungNormale Verwendung
Das prüft den Hostnamen $hostname und wird einen Fehler über getMessages() mit einer nützlichen Fehlermeldung auswerfen. Verschiedene Typen von Hostnamen prüfenEs kann gewünscht sein auch IP Adressen, lokale Hostnamen, oder eine Kombination aller drei erlaubten Typen zu prüfen. Das kann gemacht werden durch die Übergabe eines Parameters an Zend_Validate_Hostname wenn dieser initialisiert wird. Der Parameter sollte ein Integer sein, welcher die Typen von Hostnamen auswählt die erlaubt sind. Hierfür können die Zend_Validate_Hostname Konstanten verwendet werden. Die Zend_Validate_Hostname Konstanten sind: ALLOW_DNS um nur DNS Hostnamen zu erlauben, ALLOW_IP um IP Adressen zu erlauben, ALLOW_LOCAL um lokale Hostnamen zu erlauben, und ALLOW_ALL um alle drei Typen zu erlauben. Um nur IP Adressen zu prüfen kann das folgende Beispiel verwendet werden:
Genau wie die Verwendung von ALLOW_ALL alle Typen von Hostnamen akzeptiert, können diese Typen kombiniert werden um Kombinationen zu erlauben. Um zum Beispiel DNS und lokale Hostnamen zu akzeptieren muß das Zend_Validate_Hostname Objekt wie folgt initialisiert werden: Internationale Domain Namen prüfenEinige Länder Code Top Level Domains (ccTLDs), wie 'de' (Deutschland), unterstützen internationale Zeichen in Domain Namen. Diese sind als Internationale Domain Namen (IDN) bekannt. Diese Domains können mit Zend_Validate_Hostname geprüft werden, mit Hilfe von erweiterten Zeichen die im Prüfprozess verwendet werden.
Eine IDN Domain zu prüfen ist genauso einfach wie die Verwendung des standard Hostnamen Prüfers da IDN Prüfung standardmäßig eingeschaltet ist. Wenn IDN Prüfung ausgeschaltet werden soll, kann das entweder durch die Übergabe eines Parameters im Zend_Validate_Hostname Constructor, oder über die setValidateIdn() Methode gemacht werden. Die IDN Prüfung kann ausgeschaltet werden durch die Übergabe eines zweiten Parameters an den Zend_Validate_Hostname Constructor auf die folgende Art und Weise.
Alternativ kann entweder TRUE oder FALSE an setValidateIdn() übergeben werden, um die IDN Prüfung ein- oder auszuschalten. Wenn ein IDN Hostname geprüft wird, der aktuell nicht unterstützt wird, ist sicher das die Prüfung fehlschlagen wird wenn er irgendwelche internationalen Zeichen hat. Wo keine ccTLD Datei in Zend/Validate/Hostname existiert, welche die zusätzlichen Zeichen definiert, wird eine normale Hostnamen Prüfung durchgeführt.
Top Level Domains prüfenNormalerweise wird ein Hostname gegen eine Liste von bekannten TLDs geprüft. Wenn diese Funktionalität nicht benötigt wird kann das, auf die gleiche Art und Weise wie die IDN Unterstützung, ausgeschaltet werden Die TLD Prüfung kann ausgeschaltet werden indem ein dritter Parameter an den Zend_Validate_Hostname Constructor übergeben wird. Im folgenden Beispiel wird die IDN Prüfung durch den zweiten Parameter unterstützt.
Alternativ kann entweder TRUE oder FALSE übergeben an setValidateTld() übergeben werden um die TLD Prüfung ein- oder auszuschalten.
IbanZend_Validate_Iban prüft ob ein angegebener Wert eine IBAN Nummer sein könnte. IBAN ist die Abkürzung für "International Bank Account Number". Unterstützte Optionen für Zend_Validate_IbanDie folgenden Optionen werden für Zend_Validate_Iban unterstützt:
IBAN PrüfungIBAN Nummern sind immer in Bezug zu einem Land. Dies bedeutet dass unterschiedliche Länder unterschiedliche Formate für Ihre IBAN Nummern verwenden. Das ist der Grund dafür warum IBAN nummern immer ein Gebietsschema benötigen. Wenn wir dies wissen, dann wissen wir bereits wie wir Zend_Validate_Iban verwenden können. Anwendungsweites GebietsschemaWir können das Anwendungsweite Gebietsschema verwenden. Dass bedeutet, wenn keine Option bei der Instanzierung angegeben wird, das Zend_Validate_Iban nach dem Anwendungsweiten Gebietsschema sucht. Siehe den folgenden Codeabschnitt:
Unscharfe IBAN PrüfungManchmal ist es nützlich, nur zu prüfen ob der angegebene Wert eine IBAN Nummer ist oder nicht. Das bedeutet das man nicht auf ein definiertes Land prüfen will. Das kann getan werden indem ein FALSE als Gebietsschema verwendet wird.
So wird jede IBAN Nummer gültig sein. Es ist zu beachten dass man dies nicht tun sollte wenn man nur Konten von einem einzelnen Land akzeptiert. Gebietsschema verwendende IBAN PrüfungUm gegen ein definiertes Land zu prüfen muss man nur das gewünschte Gebietsschema angeben. Man kann dies mit der locale Option tun, und bei Verwendung von setLocale() auch im Nachhinein.
IdenticalZend_Validate_Identical erlaubt es zu prüfen ob ein angegebener Wert mit einem angegebenen Vergleichswert identisch ist. Unterstützte Optionen für Zend_Validate_IdenticalDie folgenden Optionen werden für Zend_Validate_Identical unterstützt:
Grundsätzliche VerwendungUm zu prüfen ob zwei Werte identisch sind muss man den originalen Wert als Vergleichswert setzen. Siehe das folgende Beispiel welches zwei Strings vergleicht.
Die Prüfung wird nur dann TRUE zurückgeben wenn beide Werte 100% identisch sind. In unserem Beispiel wenn $value 'original' ist. Man kann den gewünschten Token auch im Nachhinein durch Verwendung der Methode setToken() setzen und mit getToken() den aktuell gesetzten Token erhalten. Identische ObjekteNatürlich kann Zend_Validate_Identical nicht nur Strings prüfen, sondern jeden Variablentyp wie Boolean, Integer, Float, Array oder sogar Objekte. Wie bereits notiert müssen Vergleichswert und Wert identisch sein.
Formular ElementeZend_Validate_Identical unterstützt auch den Vergleich von Formularelementen. Das kann getan werden indem der Name des Elements als token verwendet wird. Siehe das folgende Beispiel:
Indem der Elementname vom ersten Element als token für das zweite Element verwendet wird, prüft der Prüfer ob das zweite Element gleich dem ersten Element ist. Im Falle das der Benutzer keine zwei identischen Werte eingegeben hat, erhält man einen Prüffehler. Strikte PrüfungWie vorher erwähnt prüft Zend_Validate_Identical die Token strikt. Man kann dieses Verhalten ändern indem die strict Option verwendet wird. Der Standardwert für diese Eigenschaft ist TRUE.
Der Unterschied zum vorhergehenden Beispiel besteht darin dass die Prüfung in diesem Fall TRUE zurückgibt, selbst wenn man einen Integerwert mit einem String prüft solange der Inhalt identisch aber nicht vom gleichen Typ ist. Der Bequemlichkeit halber kann man auch setStrict() und getStrict() verwenden. KonfigurationWie alle anderen Prüfungen unterstützt Zend_Validate_Identical auch die Verwendung von Konfigurationseinstellungen als Eingabe Parameter. Das bedeutet das man den Prüfer mit einem Zend_Config Objekt konfigurieren kann. Aber das führt zu einem weiteren Fall den man berücksichtigen muss. Wenn man ein Array als Vergleichswert verwendet, dann sollte man dieses in einen 'token' Schlüssel einhüllen wenn dieses nur ein Element enthält.
Das oben stehende Beispiel prüft den Integerwert 123. Der Grund für diesen speziellen Fall ist, dass man den Token der verwendet werden soll, durch Angabe des 'token' Schlüssels, konfigurieren kann. Wenn der eigene Vergleichswert nur ein Element enthält, und dieses Element 'token' heißt dann muss man dieses, wie im oben stehenden Beispiel gezeigt, einhüllen.
InArrayZend_Validate_InArray erlaubt es zu prüfen ob ein gegebener Wert in einem Array enthalten ist. Er ist auch in der Lage mehrdimensionale Arrays zu prüfen. Unterstützte Optionen für Zend_Validate_InArrayDie folgenden Optionen werden für Zend_Validate_InArray unterstützt:
Einfache Array PrüfungDer einfachste Weg ist es, das Array welches durchsucht werden soll, bei der Initiierung anzugeben:
Das verhält sich genauso wie PHP's in_array() Methode.
Natürlich kann man das Array gegen das geprüft werden soll auch im Nachhinein durch Verwendung der setHaystack() Methode angegeben werden. getHaystack() gibt das aktuell gesetzte Haystack Array zurück.
Strikte Array PrüfungWie vorher erwähnt kann man auch eine Strikte Prüfung im Array durchführen. Standardmäßig würde kein Unterschied zwischen dem Integerwert 0 und dem String "0" sein. Wenn eine strikte Prüfung durchgeführt wird dann wird dieser Unterschied auch geprüft und nur gleiche Typen werden akzeptiert. Eine strikte Prüfung kann auch auf zwei verschiedenen Wegen durchgeführt werden. Bei der Initiierung und durch Verwendung einer Methode. Bei der Initiierung muß hierfür ein Array mit der folgenden Struktur angegeben werden:
Der haystack Schlüssel enthält das eigene Array das für die Prüfung verwendet wird. Durch das Setzen des script Schlüssels auf TRUE wird die Prüfung so durchgeführt, das der Typ strikt geprüft wird. Natürlich kann man auch die setStrict() Methode verwenden um diese Einstellung im Nachhinein zu ändern und getStrict() um den aktuell gesetzten Status zu erhalten.
Rekursive Array PrüfungZusätzlich zu PHP's in_array() Methode kann diese Prüfung auch verwendet werden um Mehrdimensionale Arrays zu prüfen. Um mehrdimensionale Array zu prüfen muß die recursive Option gesetzt werden.
Das eigene Array wird das rekursiv geprüft um zu sehen ob der angegebene Wert enthalten ist. Zusätzlich kann setRecursive() verwendet werden um diese Option im Nachhinein zu setzen und getRecursive() um Ihn zu erhalten.
IntZend_Validate_Int prüft ob ein angegebener Wert ein Integer (Ganzzahl) ist. Auch lokalisierte Integerwerte werden erkannt und können geprüft werden. Unterstützte Optionen für Zend_Validate_IntDie folgenden Optionen werden für Zend_Validate_Int unterstützt:
Einfache Integer PrüfungDer einfachste Weg um einen Integerwert zu prüfen ist die Verwendung der Systemeinstellungen. Wenn keine Optionen angegeben werden, dann wird das Gebietsschema der Umgebung für die Prüfung verwendet:
Um obigen Beispiel haben wir angenommen das unsere Umgebung auf "en" als Gebietsschema gesetzt ist. Wie man im dritten Beispiel sieht wird auch die Gruppierung erkannt. Lokalisierte Integer PrüfungOft ist es nützlich dazu in der Lage zu sein lokalisierte Werte zu prüfen. Integerwerte werden in anderen Ländern oft unterschiedlich geschrieben. Zum Beispiel kann man im Englischen "1234" oder "1,234" schreiben. Beides sind Integerwerte, aber die Gruppierung ist optional. Im Deutschen kann man zum Beispiel "1.234" schreiben und im Französischen "1 234". Zend_Validate_Int ist in der Lage solche Schreibweisen zu prüfen. Das bedeutet, das es nicht einfach das Trennzeichen entfernt, sondern auch prüft ob das richtige Trennzeichen verwendet wird. Siehe den folgenden Code:
Wie man sieht wird die Eingabe, bei Verwendung eines Gebietsschemas, lokalisiert geprüft. Bei Verwendung der englischen Schreibweise erhält man FALSE wenn das Gebietsschema eine andere Schreibweise erzwingt. Das Gebietsschema kann auch im Nachhinein gesetzt werden indem setLocale() verwendet wird, und empfangen indem man getLocale() verwendet. IsbnZend_Validate_Isbn erlaubt es einen ISBN-10 oder ISBN-13 Wert zu prüfen. Unterstützte Optionen für Zend_Validate_IsbnDie folgenden Optionen werden für Zend_Validate_Isbn unterstützt:
Einfache VerwendungEin einfaches Verwendungsbeispiel ist anbei zu finden:
Das prüft jeden ISBN-10 und ISBN-13 Wert ohne Trennzeichen. Einen expliziten ISBN Prüfungstyp setzenEin Beispiel für die Begrenzung auf einen ISBN Typ ist anbei zu finden:
Das vorherige prüft nur auf ISBN-13 Werte. Folgende gültige Typen sind vorhanden:
Eine Begrenzung auf ein Trennzeichen spezifizierenEin Beispiel für die Begrenzung auf ein Trennzeichen ist anbei zu finden:
Gültige Separatoren sind:
IpZend_Validate_Ip erlaubt es zu Prüfen ob ein gegebener Wert eine IP Adresse ist. Er unterstützt den IPv4 und auch den IPv6 Standard. Unterstützte Optionen für Zend_Validate_IpDie folgenden Optionen werden für Zend_Validate_Ip unterstützt:
Grundsätzliche VerwendungEin einfaches Beispiel für die Verwendung ist anbei:
IPv4 oder IPv6 alleine prüfenManchmal ist es nützlich nur eines der unterstützten Formate zu prüfen. Zum Beispiel wenn das eigene Netzwert nur IPv4 unterstützt. In diesem Fall wäre es sinnlos IPv6 in der Prüfung zu erlauben. Um Zend_Validate_Ip auf ein Protokoll zu begrenzen kann man die Optionen allowipv4 oder allowipv6 auf FALSE setzen. Man kann das durchführen indem die Option entweder im Constructor angegeben wird, oder indem setOptions() im Nachhinein verwendet wird.
LessThanZend_Validate_LessThan erlaubt es zu prüfen ob ein angegebener Wert kleiner als ein maximaler Grenzwert ist. Das ist der Cousine von Zend_Validate_GreaterThan.
Unterstützte Optionen für Zend_Validate_LessThanDie folgenden Optionen werden für Zend_Validate_LessThan unterstützt:
Normale VerwendungUm zu prüfen ob ein angegebener Wert kleiner als eine definierte Grenz ist kann einfach das folgende Beispiel verwendet werden.
Das obige Beispiel gibt für alle Werte TRUE zurück die 10 sind oder kleiner als 10. NotEmptyDieser Prüfer erlaubt es zu prüfen ob ein angegebener Wert nicht leer ist. Das ist oft nützlich wenn man mit Formular Elementen oder anderen Benutzereingaben arbeitet, und man sicherstellen will das den benötigten Elementen Werte zugeordnet wurden. Unterstützte Optionen für Zend_Validate_NotEmptyDie folgenden Optionen werden für Zend_Validate_NotEmpty unterstützt:
Standardverhalten für Zend_Validate_NotEmptyStandardmäßig arbeitet diese Prüfung anders als man es laut PHP's empty() Funktion erwarten würde. Im speziellen evaluiert diese Prüfung den den Integer 0 und den String '0' als leer.
Ändern des Verhaltens für Zend_Validate_NotEmptyEinige Projekte haben andere Ansichten davon was als "leerer" Wert angesehen wird: ein String der nur Leerzeichen enthält könnte als leer angesehen werden, oder 0 könnte als nicht leer angesehen werden (speziell für boolsche Sequenzen). Um den unterschiedlichen Notwendigkeiten gerecht zu werden erlaubt es Zend_Validate_NotEmpty die Typen zu konfigurieren welche als leer angesehen werden und jene die es nicht werden. Die folgenden Typen können behandelt werden:
Alle anderen Werte geben standardmäßig TRUE zurück. Es gibt verschiedene Wege um zu wählen welche der obigen Typen geprüft werden sollen. Man kann ein oder mehrere Typen angeben und Sie hinzufügen, man kann ein Array angeben, man kann Konstanten verwenden, oder man gibt einen textuellen String an. Siehe auch die folgenden Beispiele:
Man kann auch eine Instanz von Zend_Config angeben um die gewünschten Typen zu setzen. Um Typen nach der Instanzierung zu setzen kann die Methode setType() verwendet werden. PostCodeZend_Validate_PostCode erlaubt es zu eruieren ob ein angegebener Wert eine gültige Postleitzahl ist. Postleitzahlen sind spezifisch für Städte und in einigen Gebietsschemata auch als ZIP Codes bezeichnet. Zend_Validate_PostCode kennt mehr als 160 unterschiedliche Formate für Postleitzahlen. Um das richtige Format auszuwählen gibt es 2 Wege. Man kann entweder ein voll qualifiziertes Gebietsschema verwenden, oder ein eigenes Format manuall setzen. Die Verwendung eines Gebietsschemas ist bequemer da Zend Framework bereits die entsprechenden Formate für Postleitzahlen für jedes Gebietsschema kennt; aber muss man ein voll qualifiziertes Gebietsschema verwenden (eines das eine Region spezifiziert) damit es funktioniert. Das Gebietsschema "de" zum Beispiel ist zwar ein Gebietsschema, kann aber nicht mit Zend_Validate_PostCode verwendet werden da es keine Region enthält; "de_AT" andererseits würde ein gültiges Gebietsschema sein da es den Region Code spezifiziert ("AT", für Österreich).
Wenn man das Gebietsschema nicht selbst setzt, dann verwendet Zend_Validate_PostCode das anwendungsweit gesetzte Gebietsschema, oder wenn keines vorhanden ist, das Gebietsschema welches von Zend_Locale zurückgegeben wird.
Man kann das Gebietsschema auch im Nachhinein ändern, indem man setLocale() aufruft. Und natürlich kann man das aktuelle Gebietsschema erhalten indem getLocale() aufgerufen wird.
Postleitzahlen Formate selbst sind einfache Regular Expression Strings. Wenn das internationale Postleitzahlen Format, welches durch das Setzen des Gebietsschemas verwendet wird, den eigenen Bedüfnissen nicht entspricht, dann kann man ein Format auch manuell setzen indem setFormat() aufgerufen wird.
Optionen des ConstructorsGrundsätzlich kann man dem Contructor von Zend_Validate_PostCode entweder ein Zend_Locale Objekt, oder einen String der ein voll qualifiziertes Gebietsschema repräsentiert, angeben.
Zusätzlich kann man dem Contructor entweder ein Array oder ein Zend_Config Objekt übergeben. Wenn man das tut, muss man entweder den Schlüssel "locale" oder "format" verwenden; diese werden verwendet um die betreffenden Werte im Prüfobjekt zu setzen.
Unterstützte Optionen für Zend_Validate_PostCodeDie folgenden Optionen werden für Zend_Validate_PostCode unterstützt:
RegexDiese Prüfung erlaubt es zu prüfen ob ein angegebener String einer definierten Regular Expression entspricht. Unterstützte Optionen für Zend_Validate_RegexDie folgenden Optionen werden für Zend_Validate_Regex unterstützt:
Prüfen mit Zend_Validate_RegexDie Prüfung mit Regular Expressions erlaubt es komplizierte Prüfungen durchzuführen, ohne das eine eigene Prüfung geschrieben werden muss. Die Verwendung von Regular Expressions ist relativ üblich und einfach. Sehen wir uns ein Beispiel an:
Wie man sehen kann hat das Pattern welches anzugeben ist die gleiche Syntax wie für preg_match(). Für Details über Regular Expressions sollte man einen Blick in » PHP's Handbuch über die PCRE Pattern Syntax werfen. Handhabung von PatternEs ist auch möglich andere Pattern im Nachhinein zu setzen indem setPattern() verwendet wird, und das aktuell gesetzte Pattern mit getPattern() erhalten.
Sitemap PrüfungenDie folgenden Prüfungen entsprechen dem » Sitemap XML Protokoll. Sitemap_ChangefreqPrüft ob ein String gültig ist um Ihn als 'changefreq' Element in einem Sitemap XML Dokument zu verwenden. Gültige Elemente sind: 'always', 'hourly', 'daily', 'weekly', 'monthly', 'yearly', oder 'never'. Gibt TRUE zurück wenn und nur wenn der Wert ein String ist und mit einer der oben spezifizierten Frequenzen übereinstimmt. Sitemap_LastmodPrüft ob ein String gültig ist um Ihn als 'lastmod' Element in einem Sitemap XML Dokument zu verwenden. Das lastmod Element sollte einen W3C Datumsstring enthalten, und optional Informationen über die Zeit enthalten. Gibt TRUE zurück wenn, und nur wenn, der angegebene Wert ein String und in Bezug auf das Prokoll gültig ist. Example #1 Sitemap Lastmod Prüfung
Sitemap_LocPrüft ob ein String für die Verwendung als 'loc' Element in einem Sitemap XML Dokument gültig ist. Er verwendet intern Zend_Form::check(). Mehr darüber kann man unter URI Prüfung lesen. Sitemap_PriorityPrüft ob ein Wert für die Verwendung als 'priority' Element in einem Sitemap XML Dokument gültig ist. Der Wert sollte ein Dezimalwert zwischen 0.0 und 1.0 sein. Diese Prüfung akzeptiert sowohl nummerische Werte als auch Stringwerte. Example #2 Sitemap Priority Prüfung
Unterstützte Optionen für Zend_Validate_Sitemap_*Es gibt keine unterstützten Optionen für irgendeine der Sitemap Prüfungen. StringLengthDiese Prüfung erlaubt es zu prüfen ob ein angegebener String eine definierte Länge besitzt.
Unterstützte Optionen für Zend_Validate_StringLengthDie folgenden Optionen werden von Zend_Validate_StringLength unterstützt:
Standardverhalten für Zend_Validate_StringLengthStandardmäßig prüft diese Prüfung ob ein Wert zwischen min und max ist. Aber für min ist der Standardwert 0 und für max ist er NULL, was unlimitiert bedeutet. Deshalb prüft diese Prüfung standardmäßig, ohne das eine Option angegeben wurde, nur ob die Eingabe ein String ist. Die maximal erlaubte Länge eines String begrenzenUm die maximal erlaubte Länge eines Strings zu begrenzen muss man die Eigenschaft max setzen. Sie akzeptiert einen Integerwert als Eingabe.
Man kann die maximal erlaubte Länge auch im Nachhinein setzen indem die setMax() Methode verwendet wird. Und getMax() um die aktuelle maximale Grenze zu erhalten.
Die mindestens benötigte Länge eines Strings begrenzenUm die mindestens benötigte Länge eines Strings zu begrenzen muss man die Eigenschaft min setzen. Sie akzeptiert einen Integerwert als Eingabe.
Man kann die mindestens benötigte Länge auch im Nachhinein setzen indem die setMin() Methode verwendet wird. Und getMin() um die aktuelle Mindestgrenze zu erhalten.
Einen String auf beiden Seiten begrenzenManchmal ist es notwendig einen String zu erhalten der eine maximal definierte Länge, aber auch eine Mindestlänge hat. Wenn man, zum Beispiel, eine Textbox hat in welcher der Benutzer seinen Namen angeben kann, könnte man den Namen auf maximal 30 Zeichen begrenzen. Aber man will auch sicher gehen das er seinen Namen angegeben hat. Deshalb setzt man die zumindest benötigte Länge auf 3 Zeichen. Siehe das folgende Beispiel:
Kodierung von WertenStrings verwenden immer eine Kodierung. Selbst wenn man keine explizite Kodierung verwendet, dann verwendet PHP eine. Wenn die eigene Anwendung eine andere Kodierung verwendet als PHP selbst, dann sollte man eine Kodierung setzen. Man kann eine eigene Kodierung bei der Instanzierung mit der encoding Option setzen, oder indem die setEncoding() Methode verwendet wird. Wir nehmen an das die eigene Installation ISO verwendet und die Anwendung auf ISO gesetzt ist. In diesem Fall sieht man das folgende Verhalten.
Wenn die eigene Installation und die Anwendung also unterschiedliche Kodierungen verwenden, dann sollte man immer selbst eine Kodierung setzen.
|