| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 24249 -->
- <!-- 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 <classname>Zend_Validate_StringLength</classname> 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:
- -->
|