Zend_Validate-StringLength.xml 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 24249 -->
  3. <!-- Reviewed: no -->
  4. <sect2 id="zend.validate.set.stringlength">
  5. <title>StringLength</title>
  6. <para>
  7. Diese Prüfung erlaubt es zu prüfen ob ein angegebener String eine definierte Länge besitzt.
  8. </para>
  9. <note>
  10. <title>Zend_Validate_StringLength unterstützt nur die Prüfung von Strings</title>
  11. <para>
  12. Es ist zu beachten das <classname>Zend_Validate_StringLength</classname> nur die Prüfung
  13. von Strings unterstützt. Integer, Floats, Datumswerte oder Objekte können mit dieser
  14. Prüfung nicht überprüft werden.
  15. </para>
  16. </note>
  17. <sect3 id="zend.validate.set.stringlength.options">
  18. <title>Unterstützte Optionen für Zend_Validate_StringLength</title>
  19. <para>
  20. Die folgenden Optionen werden von <classname>Zend_Validate_StringLength</classname>
  21. unterstützt:
  22. </para>
  23. <itemizedlist>
  24. <listitem>
  25. <para>
  26. <emphasis><property>encoding</property></emphasis>: Setzt die Kodierung von
  27. <constant>ICONV</constant> welche für den String verwendet wird.
  28. </para>
  29. </listitem>
  30. <listitem>
  31. <para>
  32. <emphasis><property>min</property></emphasis>: Setzt die erlaubte Mindestlänge
  33. für einen String.
  34. </para>
  35. </listitem>
  36. <listitem>
  37. <para>
  38. <emphasis><property>max</property></emphasis>: Setzt die erlaubte Maximallänge
  39. für einen String.
  40. </para>
  41. </listitem>
  42. </itemizedlist>
  43. </sect3>
  44. <sect3 id="zend.validate.set.stringlength.basic">
  45. <title>Standardverhalten für Zend_Validate_StringLength</title>
  46. <para>
  47. Standardmäßig prüft diese Prüfung ob ein Wert zwischen <property>min</property> und
  48. <property>max</property> ist. Aber für <property>min</property> ist der Standardwert
  49. <emphasis>0</emphasis> und für <property>max</property> ist er
  50. <emphasis><constant>NULL</constant></emphasis>, was unlimitiert bedeutet.
  51. </para>
  52. <para>
  53. Deshalb prüft diese Prüfung standardmäßig, ohne das eine Option angegeben wurde, nur
  54. ob die Eingabe ein String ist.
  55. </para>
  56. </sect3>
  57. <sect3 id="zend.validate.set.stringlength.maximum">
  58. <title>Die maximal erlaubte Länge eines String begrenzen</title>
  59. <para>
  60. Um die maximal erlaubte Länge eines Strings zu begrenzen muss man die Eigenschaft
  61. <property>max</property> setzen. Sie akzeptiert einen Integerwert als Eingabe.
  62. </para>
  63. <programlisting language="php"><![CDATA[
  64. $validator = new Zend_Validate_StringLength(array('max' => 6));
  65. $validator->isValid("Test"); // Gibt true zurück
  66. $validator->isValid("Testing"); // Gibt false zurück
  67. ]]></programlisting>
  68. <para>
  69. Man kann die maximal erlaubte Länge auch im Nachhinein setzen indem die
  70. <methodname>setMax()</methodname> Methode verwendet wird. Und
  71. <methodname>getMax()</methodname> um die aktuelle maximale Grenze zu erhalten.
  72. </para>
  73. <programlisting language="php"><![CDATA[
  74. $validator = new Zend_Validate_StringLength();
  75. $validator->setMax(6);
  76. $validator->isValid("Test"); // Gibt true zurück
  77. $validator->isValid("Testing"); // Gibt false zurück
  78. ]]></programlisting>
  79. </sect3>
  80. <sect3 id="zend.validate.set.stringlength.minimum">
  81. <title>Die mindestens benötigte Länge eines Strings begrenzen</title>
  82. <para>
  83. Um die mindestens benötigte Länge eines Strings zu begrenzen muss man die Eigenschaft
  84. <property>min</property> setzen. Sie akzeptiert einen Integerwert als Eingabe.
  85. </para>
  86. <programlisting language="php"><![CDATA[
  87. $validator = new Zend_Validate_StringLength(array('min' => 5));
  88. $validator->isValid("Test"); // Gibt false zurück
  89. $validator->isValid("Testing"); // Gibt true zurück
  90. ]]></programlisting>
  91. <para>
  92. Man kann die mindestens benötigte Länge auch im Nachhinein setzen indem die
  93. <methodname>setMin()</methodname> Methode verwendet wird. Und
  94. <methodname>getMin()</methodname> um die aktuelle Mindestgrenze zu erhalten.
  95. </para>
  96. <programlisting language="php"><![CDATA[
  97. $validator = new Zend_Validate_StringLength();
  98. $validator->setMin(5);
  99. $validator->isValid("Test"); // Gibt false zurück
  100. $validator->isValid("Testing"); // Gibt true zurück
  101. ]]></programlisting>
  102. </sect3>
  103. <sect3 id="zend.validate.set.stringlength.both">
  104. <title>Einen String auf beiden Seiten begrenzen</title>
  105. <para>
  106. Manchmal ist es notwendig einen String zu erhalten der eine maximal definierte Länge,
  107. aber auch eine Mindestlänge hat. Wenn man, zum Beispiel, eine Textbox hat in welcher der
  108. Benutzer seinen Namen angeben kann, könnte man den Namen auf maximal 30 Zeichen
  109. begrenzen. Aber man will auch sicher gehen das er seinen Namen angegeben hat. Deshalb
  110. setzt man die zumindest benötigte Länge auf 3 Zeichen. Siehe das folgende Beispiel:
  111. </para>
  112. <programlisting language="php"><![CDATA[
  113. $validator = new Zend_Validate_StringLength(array('min' => 3, 'max' => 30));
  114. $validator->isValid("."); // Gibt false zurück
  115. $validator->isValid("Test"); // Gibt true zurück
  116. $validator->isValid("Testing"); // Gibt true zurück
  117. ]]></programlisting>
  118. <note>
  119. <title>Eine kleinere Maximalgrenze als die Mindestgrenze setzen</title>
  120. <para>
  121. Wenn man versucht eine kleinere Maximalgrenze zu setzen als der aktuelle
  122. Mindestwert, oder eine größere Mindestgrenze als den aktuellen Maximalwert, dann
  123. wird eine Exception geworfen.
  124. </para>
  125. </note>
  126. </sect3>
  127. <sect3 id="zend.validate.set.stringlength.encoding">
  128. <title>Kodierung von Werten</title>
  129. <para>
  130. Strings verwenden immer eine Kodierung. Selbst wenn man keine explizite Kodierung
  131. verwendet, dann verwendet <acronym>PHP</acronym> eine. Wenn die eigene Anwendung eine
  132. andere Kodierung verwendet als <acronym>PHP</acronym> selbst, dann sollte man eine
  133. Kodierung setzen.
  134. </para>
  135. <para>
  136. Man kann eine eigene Kodierung bei der Instanzierung mit der
  137. <property>encoding</property> Option setzen, oder indem die
  138. <methodname>setEncoding()</methodname> Methode verwendet wird. Wir nehmen an das die
  139. eigene Installation <acronym>ISO</acronym> verwendet und die Anwendung auf
  140. <acronym>ISO</acronym> gesetzt ist. In diesem Fall sieht man das folgende
  141. Verhalten.
  142. </para>
  143. <programlisting language="php"><![CDATA[
  144. $validator = new Zend_Validate_StringLength(
  145. array('min' => 6)
  146. );
  147. $validator->isValid("Ärger"); // Gibt false zurück
  148. $validator->setEncoding("UTF-8");
  149. $validator->isValid("Ärger"); // Gibt true zurück
  150. $validator2 = new Zend_Validate_StringLength(
  151. array('min' => 6, 'encoding' => 'UTF-8')
  152. );
  153. $validator2->isValid("Ärger"); // Gibt true zurück
  154. ]]></programlisting>
  155. <para>
  156. Wenn die eigene Installation und die Anwendung also unterschiedliche Kodierungen
  157. verwenden, dann sollte man immer selbst eine Kodierung setzen.
  158. </para>
  159. </sect3>
  160. </sect2>
  161. <!--
  162. vim:se ts=4 sw=4 et:
  163. -->