|
|
@@ -0,0 +1,201 @@
|
|
|
+<?xml version="1.0" encoding="UTF-8"?>
|
|
|
+<!-- EN-Revision: 21479 -->
|
|
|
+<!-- Reviewed: no -->
|
|
|
+<sect2 id="zend.validate.set.stringlength">
|
|
|
+ <title>StringLength</title>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Diese Prüfung erlaubt es zu prüfen ob ein angegebener String eine definierte Länge besitzt.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <note>
|
|
|
+ <title>Zend_Validate_StringLength unterstützt nur die Prüfung von Strings</title>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Es ist zu beachten das Zend_Validate_StringLength nur die Prüfung von Strings
|
|
|
+ unterstützt. Integer, Floats, Datumswerte oder Objekte können mit dieser Prüfung nicht
|
|
|
+ überprüft werden.
|
|
|
+ </para>
|
|
|
+ </note>
|
|
|
+
|
|
|
+ <sect3 id="zend.validate.set.stringlength.options">
|
|
|
+ <title>Unterstützte Optionen für Zend_Validate_StringLength</title>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Die folgenden Optionen werden von <classname>Zend_Validate_StringLength</classname>
|
|
|
+ unterstützt:
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <itemizedlist>
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis><property>encoding</property></emphasis>: Setzt die Kodierung von
|
|
|
+ <constant>ICONV</constant> welche für den String verwendet wird.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis><property>min</property></emphasis>: Setzt die erlaubte Mindestlänge
|
|
|
+ für einen String.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis><property>max</property></emphasis>: Setzt die erlaubte Maximallänge
|
|
|
+ für einen String.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+ </itemizedlist>
|
|
|
+ </sect3>
|
|
|
+
|
|
|
+ <sect3 id="zend.validate.set.stringlength.basic">
|
|
|
+ <title>Standardverhalten für Zend_Validate_StringLength</title>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Standardmäßig prüft diese Prüfung ob ein Wert zwischen <property>min</property> und
|
|
|
+ <property>max</property> ist. Aber für <property>min</property> ist der Standardwert
|
|
|
+ <emphasis>0</emphasis> und für <property>max</property> ist er
|
|
|
+ <emphasis><constant>NULL</constant></emphasis>, was unlimitiert bedeutet.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Deshalb prüft diese Prüfung standardmäßig, ohne das eine Option angegeben wurde, nur
|
|
|
+ ob die Eingabe ein String ist.
|
|
|
+ </para>
|
|
|
+ </sect3>
|
|
|
+
|
|
|
+ <sect3 id="zend.validate.set.stringlength.maximum">
|
|
|
+ <title>Die maximal erlaubte Länge eines String begrenzen</title>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Um die maximal erlaubte Länge eines Strings zu begrenzen muss man die Eigenschaft
|
|
|
+ <property>max</property> setzen. Sie akzeptiert einen Integerwert als Eingabe.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <programlisting language="php"><![CDATA[
|
|
|
+$validator = new Zend_Validate_StringLength(array('max' => 6));
|
|
|
+
|
|
|
+$validator->isValid("Test"); // Gibt true zurück
|
|
|
+$validator->isValid("Testing"); // Gibt false zurück
|
|
|
+]]></programlisting>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Man kann die maximal erlaubte Länge auch im Nachhinein setzen indem die
|
|
|
+ <methodname>setMax()</methodname> Methode verwendet wird. Und
|
|
|
+ <methodname>getMax()</methodname> um die aktuelle maximale Grenze zu erhalten.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <programlisting language="php"><![CDATA[
|
|
|
+$validator = new Zend_Validate_StringLength();
|
|
|
+$validator->setMax(6);
|
|
|
+
|
|
|
+$validator->isValid("Test"); // Gibt true zurück
|
|
|
+$validator->isValid("Testing"); // Gibt false zurück
|
|
|
+]]></programlisting>
|
|
|
+ </sect3>
|
|
|
+
|
|
|
+ <sect3 id="zend.validate.set.stringlength.minimum">
|
|
|
+ <title>Die mindestens benötigte Länge eines Strings begrenzen</title>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Um die mindestens benötigte Länge eines Strings zu begrenzen muss man die Eigenschaft
|
|
|
+ <property>min</property> setzen. Sie akzeptiert einen Integerwert als Eingabe.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <programlisting language="php"><![CDATA[
|
|
|
+$validator = new Zend_Validate_StringLength(array('min' => 5));
|
|
|
+
|
|
|
+$validator->isValid("Test"); // Gibt false zurück
|
|
|
+$validator->isValid("Testing"); // Gibt true zurück
|
|
|
+]]></programlisting>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Man kann die mindestens benötigte Länge auch im Nachhinein setzen indem die
|
|
|
+ <methodname>setMin()</methodname> Methode verwendet wird. Und
|
|
|
+ <methodname>getMin()</methodname> um die aktuelle Mindestgrenze zu erhalten.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <programlisting language="php"><![CDATA[
|
|
|
+$validator = new Zend_Validate_StringLength();
|
|
|
+$validator->setMin(5);
|
|
|
+
|
|
|
+$validator->isValid("Test"); // Gibt false zurück
|
|
|
+$validator->isValid("Testing"); // Gibt true zurück
|
|
|
+]]></programlisting>
|
|
|
+ </sect3>
|
|
|
+
|
|
|
+ <sect3 id="zend.validate.set.stringlength.both">
|
|
|
+ <title>Einen String auf beiden Seiten begrenzen</title>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Manchmal 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:
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <programlisting language="php"><![CDATA[
|
|
|
+$validator = new Zend_Validate_StringLength(array('min' => 3, 'max' => 30));
|
|
|
+
|
|
|
+$validator->isValid("."); // Gibt false zurück
|
|
|
+$validator->isValid("Test"); // Gibt true zurück
|
|
|
+$validator->isValid("Testing"); // Gibt true zurück
|
|
|
+]]></programlisting>
|
|
|
+
|
|
|
+ <note>
|
|
|
+ <title>Eine kleinere Maximalgrenze als die Mindestgrenze setzen</title>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Wenn man versucht eine kleinere Maximalgrenze zu setzen als der aktuelle
|
|
|
+ Mindestwert, oder eine größere Mindestgrenze als den aktuellen Maximalwert, dann
|
|
|
+ wird eine Exception geworfen.
|
|
|
+ </para>
|
|
|
+ </note>
|
|
|
+ </sect3>
|
|
|
+
|
|
|
+ <sect3 id="zend.validate.set.stringlength.encoding">
|
|
|
+ <title>Kodierung von Werten</title>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Strings verwenden immer eine Kodierung. Selbst wenn man keine explizite Kodierung
|
|
|
+ verwendet, dann verwendet <acronym>PHP</acronym> eine. Wenn die eigene Anwendung eine
|
|
|
+ andere Kodierung verwendet als <acronym>PHP</acronym> selbst, dann sollte man eine
|
|
|
+ Kodierung setzen.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Man kann eine eigene Kodierung bei der Instanzierung mit der
|
|
|
+ <property>encoding</property> Option setzen, oder indem die
|
|
|
+ <methodname>setEncoding()</methodname> Methode verwendet wird. Wir nehmen an das die
|
|
|
+ eigene Installation <acronym>ISO</acronym> verwendet und die Anwendung auf
|
|
|
+ <acronym>ISO</acronym> gesetzt ist. In diesem Fall sieht man das folgende
|
|
|
+ Verhalten.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <programlisting language="php"><![CDATA[
|
|
|
+$validator = new Zend_Validate_StringLength(
|
|
|
+ array('min' => 6)
|
|
|
+);
|
|
|
+$validator->isValid("Ärger"); // Gibt false zurück
|
|
|
+
|
|
|
+$validator->setEncoding("UTF-8");
|
|
|
+$validator->isValid("Ärger"); // Gibt true zurück
|
|
|
+
|
|
|
+$validator2 = new Zend_Validate_StringLength(
|
|
|
+ array('min' => 6, 'encoding' => 'UTF-8')
|
|
|
+);
|
|
|
+$validator2->isValid("Ärger"); // Gibt true zurück
|
|
|
+]]></programlisting>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Wenn die eigene Installation und die Anwendung also unterschiedliche Kodierungen
|
|
|
+ verwenden, dann sollte man immer selbst eine Kodierung setzen.
|
|
|
+ </para>
|
|
|
+ </sect3>
|
|
|
+</sect2>
|
|
|
+<!--
|
|
|
+vim:se ts=4 sw=4 et:
|
|
|
+-->
|