39.2. Ç¥ÁØÀÇ Validation Classes

Zend Framework ¿¡´Â, °ð¹Ù·Î »ç¿ëÇÒ ¼ö Àִ ǥÁØÀÇ Validation ClassesÀÌ µ¿°í µÇ°í ÀÖ½À´Ï´Ù.

39.2.1. Alnum

$value ÇÏÁö¸¸ ¿µ¼ýÀÚ¸¸À¸·Î ±¸¼ºµÇ¾î ÀÖÀ» ¶§ ¸¶¼Å true (À»)¸¦ µ¹·ÁÁÝ´Ï´Ù. ÀÌ Validator¿¡¼­´Â, ¿É¼ÇÀ¸·Î¼­ °ø¹é ¹®ÀÚ¸¦ ÀÎÁ¤ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

39.2.2. Alpha

$value ÇÏÁö¸¸ ¿µ¹®ÀÚ¸¸À¸·Î ±¸¼ºµÇ¾î ÀÖÀ» ¶§ ¸¶¼Å true (À»)¸¦ µ¹·ÁÁÝ´Ï´Ù. ÀÌ Validator¿¡¼­´Â, ¿É¼ÇÀ¸·Î¼­ °ø¹é ¹®ÀÚ¸¦ ÀÎÁ¤ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

39.2.3. Barcode

ÀÌ ValidatorÀÇ ÀνºÅϽº¸¦ ÀÛ¼ºÇÒ ¶§ , °ËÁõÇÏ°í ½ÍÀº ¹ÙÄÚµåÀÇ Çü½ÄÀ» ÁöÁ¤ÇÕ´Ï´Ù. ÇöÀç ¼­Æ÷Æ®Çϰí ÀÖ´Â ¹ÙÄÚµå Çü½ÄÀº "UPC-A" (Universal Product Code) (¿Í)°ú "EAN-13" (European Article Number) ÀÔ´Ï´Ù. isValid() ¸Þ¼Òµå´Â, ÁöÁ¤ÇÑ ÇüÅÂÀÇ ¹ÙÄÚµåÀÇ °ËÁõ ¾Ë°í¸®ÁòÀ¸·Î ÀÔ·ÂÀ» °ËÁõÇÒ ¼ö ÀÖ¾úÀ» °æ¿ì¿¡ true (À»)¸¦ µ¹·ÁÁÝ´Ï´Ù.ÀÌ Validator¿¡ ÀÔ·ÂÀ» °Ç³×ÁÖ±â Àü¿¡, ¼ýÀÚÀÇ 0 (À¸)·ÎºÎÅÍ 9 ±îÁö (0-9) ÀÌ¿ÜÀÇ ¹®ÀÚ´Â ¸ðµÎ ¾ø¾Ö µÎÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù.

39.2.4. Between

$value ÇÏÁö¸¸ ÃÖ¼ÒÄ¡¿Í ÃÖ´ëÄ¡ÀÇ »çÀÌ¿¡ ÀÖ´Â °æ¿ì¿¡°Ô¸¸ true (À»)¸¦ µ¹·ÁÁÝ´Ï´Ù. µðÆúÆ®¿¡¼­´Â, ¾ç´ÜÀÇ °ªµµ Æ÷ÇÔÇØ ºñ±³ÇÕ´Ï´Ù ($value ÇÏÁö¸¸ °æ°èÄ¡¿Í µ¿ÀÏÇØµµ ±¦Âú½À´Ï´Ù) ÇÏÁö¸¸,strict ¿É¼ÇÀ» º¯°æÇϰí,$value ÇÏÁö¸¸ ÃÖ¼ÒÄ¡º¸´Ù Ä¿¼­ ÃÖ´ëÄ¡º¸´Ù ÀÛ´Ù (ÃÖ¼ÒÄ¡¿Í ÃÖ´ëÄ¡´Â Æ÷ÇÔÇÏÁö ¾Ê´Â´Ù) (À¸)·Î ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

39.2.5. Ccnum

$value ÇÏÁö¸¸ Luhn ¾Ë°í¸®Áò (10 ±×¸®°í ³ª´« Áö³ªÄ£ üũ ¼¶) (À»)¸¦ ä¿ì´Â Å©·¹µðÆ® Ä«µå ¹øÈ£ÀÎ °æ¿ì¿¡°Ô¸¸ true (À»)¸¦ µ¹·ÁÁÝ´Ï´Ù.

39.2.6. Date

$value ÇÏÁö¸¸ YYYY-MM-DD Çü½ÄÀÇ ÀÏÀÚÀÎ °æ¿ì¿¡°Ô¸¸ true (À»)¸¦ µ¹·ÁÁÝ´Ï´Ù.¿É¼ÇÀÇ locale (À»)¸¦ ¼³Á¤Çϸé, ±× ·ÎÄÉÀÏ¿¡ ÀÀÇÑ °ËÁõÀ» ½Ç½ÃÇÕ´Ï´Ù. ¿É¼ÇÀÇ format (À»)¸¦ ¼³Á¤Çϸé, ±× Æ÷¸ËÀ» »ç¿ëÇÏ°í °ËÁõÀ» ½Ç½ÃÇÕ´Ï´Ù.¿É¼Ç ÆÄ¶ó¹ÌÅÍÀÇ ÀÚ¼¼ÇÑ °ÍÀº Zend_Date::isDate() (À»)¸¦ ÂüÁ¶ÇØ ÁֽʽÿÀ.

39.2.7. Digits

$value ÇÏÁö¸¸ ¼ýÀÚ¸¸À¸·Î ±¸¼ºµÇ¾î ÀÖ´Â °æ¿ì¿¡°Ô¸¸ true (À»)¸¦ µ¹·ÁÁÝ´Ï´Ù.

39.2.8. ¸ÞÀÏ ÁÖ¼Ò

Zend_Validate_EmailAddress (Àº)´Â, ¸ÞÀÏ ÁÖ¼ÒÀÇ °ËÁõÀ» ½Ç½ÃÇÕ´Ï´Ù. ÀÌ Validator´Â, ¿ì¼± ¸ÞÀÏ ÁÖ¼Ò¸¦ local-part @ hostname ¿¡ ºÐÇÒÇØ, ¸ÞÀÏ ÁÖ¼Ò³ª È£½ºÆ®¸íÀÇ »ç¾ç¿¡ ¸ÂÃß¾î °ËÁõÇÕ´Ï´Ù.

±âº»ÀûÀÎ »ç¿ë¹ý

±âº»ÀûÀÎ »ç¿ë¹ýÀº, ÀÌÇÏ¿Í °°ÀÌ µË´Ï´Ù.


<?php
require_once 'Zend/Validate/EmailAddress.php';
$validator = new Zend_Validate_EmailAddress();
if (
$validator->isValid($email)) {
    
// ¸ÞÀÏ ÁÖ¼Ò´Â ¿Ã¹Ù¸¥ Çü½Ä°°½À´Ï´Ù
} else {
    
// ºÎÁ¤ÇÑ Çü½ÄÀ̹ǷÎ, ÀÌÀ¯¸¦ Ç¥½ÃÇÕ´Ï´Ù
    
foreach ($validator->getMessages() as $message) {
        echo 
"$messagen";
    }
}

À̰ÍÀº, ¸ÞÀÏ ÁÖ¼Ò $email (À»)¸¦ °ËÁõÇØ, ½ÇÆÐÇßÀ» °æ¿ì´Â ±× ¿øÀÎÀ» ³ªÅ¸³»´Â Æí¸®ÇÑ ¿¡·¯ ¸Þ¼¼Áö¸¦ $validator->getMessages() ±×¸®°í ÃëµæÇÕ´Ï´Ù.

º¹ÀâÇÑ ·ÎÄà ÆÄÆ®

Zend_Validate_EmailAddress (Àº)´Â, ¸ÞÀÏ ÁÖ¼ÒÀÇ °ËÁõÀ» RFC2822 ¿¡ ÀǰÅÇØ ½Ç½ÃÇÕ´Ï´Ù.¿¹¸¦ µé¾î, Ÿ´çÇÑ Çü½ÄÀÇ ¸ÞÀÏ Áּҷμ­´Â bob@domain.com,bob+jones@domain.us, "bob@jones"@domain.com ¹× "bob jones"@domain.com µîÀÌ ÀÖ½À´Ï´Ù.

ÀÏÂî±â »ç¿ëµÇ°í ÀÖ¾úÁö¸¸, ÇöÀç´Â À¯È¿ÇÏ´Ù°í´Â º¸ÀÌÁö ¾Ê´Â Æ÷¸Ëµµ ÀÖ½À´Ï´Ù (¿¹¸¦ µé¾î, ¸ÞÀÏ ÁÖ¼Ò¿¡ °³Çà ¹®ÀÚ³ª "" (À»)¸¦ »ç¿ëÇÏ´Â µî).

´Ù¾çÇÑ Çü½ÄÀÇ È£½ºÆ®¸íÀÇ °ËÁõ

¸ÞÀÏ ÁÖ¼ÒÀÇ È£½ºÆ®¸í ºÎºÐÀÇ °ËÁõÀº, Zend_Validate_Hostname ±×¸®°í ½Ç½ÃÇÕ´Ï´Ù.µðÆúÆ®¿¡¼­´Â,domain.com Çü½ÄÀÇ DNS È£½ºÆ®¸í¸¸ÀÌ À¯È¿°¡ µË´Ï´Ù.±×·¯³ª, IP ÁÖ¼Ò³ª ·ÎÄà ȣ½ºÆ®¸íµµ À¯È¿ÇÏ°Ô ÇÏ°í ½ÍÀº °Íµµ ÀÖ°ÚÁö¿ä.

±× °æ¿ì´Â,Zend_Validate_EmailAddress ÀÇ ÀνºÅϽº¸¦ ÀÛ¼ºÇÒ ¶§¿¡ ÆÄ¶ó¹ÌÅ͸¦ °Ç³×ÁÖÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù. ÀÌ ÆÄ¶ó¹ÌÅÍ·Î, ÀÎÁ¤ÇÏ°í ½ÍÀº È£½ºÆ®¸íÀÇ Çü½ÄÀ» ÁöÁ¤ÇÕ´Ï´Ù. ÀÚ¼¼ÇÑ °ÍÀº Zend_Validate_Hostname (À»)¸¦ ÂüÁ¶ÇØ ÁֽʽÿÀ. ¿¹¸¦ µé¾î DNS È£½ºÆ®¸í ¹× ·ÎÄà ȣ½ºÆ®¸íÀÇ ¾î´ÀÂÊÀ̳ª Çã°¡ÇÏ·Á¸é , ´ÙÀ½°ú °°ÀÌ ÇÕ´Ï´Ù.


<?php
require_once 'Zend/Validate/EmailAddress.php';
$validator = new Zend_Validate_EmailAddress(Zend_Validate_Hostname::ALLOW_DNS Zend_Validate_Hostname::ALLOW_LOCAL);
if (
$validator->isValid($email)) {
    
// ¸ÞÀÏ ÁÖ¼Ò´Â ¿Ã¹Ù¸¥ Çü½Ä°°½À´Ï´Ù
} else {
    
// ºÎÁ¤ÇÑ Çü½ÄÀ̹ǷÎ, ÀÌÀ¯¸¦ Ç¥½ÃÇÕ´Ï´Ù
    
foreach ($validator->getMessages() as $message) {
        echo 
"$messagen";
    }
}

±× È£½ºÆ®¸íÀÌ ½ÇÁ¦·Î ¸ÞÀÏÀ» ¹Þ¾ÆµéÀÏÁöÀÇ Ã¼Å©

´ÜÁö ´ÜÁö ¸ÞÀÏ ÁÖ¼Ò°¡ ¿Ã¹Ù¸¥ ¼­½ÄÀÌ´Ù°í ÇÏ´Â °Í ¸¸À¸·Î´Â, ±× ÁÖ¼Ò°¡ ½ÇÁ¦·Î Á¸ÀçÇÒÁö ¾î¶³Áö´Â ¸ð¸¨´Ï´Ù. ÀÌ ¹®Á¦¸¦ ÇØ°áÇÏ·Á¸é ,MX ÀÇ °ËÁõÀ» ½Ç½ÃÇÕ´Ï´Ù. ¸ÞÀÏ ÁÖ¼ÒÀÇ È£½ºÆ®¸í¿¡ ´ëÀÀÇÑ´Ù DNS ·¹Äڵ忡,MX (¸ÞÀÏ) ÀÇ ¿£Æ®¸®°¡ Á¸ÀçÇÒÁö¸¦ Á¶»çÇÕ´Ï´Ù. À̰ÍÀº, ±× È£½ºÆ®°¡ ¸ÞÀÏÀ» ¹Þ¾ÆµéÀ̰í ÀÖ´ÂÁö ¾î¶²Áö¸¦ °¡¸£ÃÄ ÁÝ´Ï´Ù¸¸, ±× ¸ÞÀÏ ÁÖ¼Ò ÀÚü°¡ ¿Ã¹Ù¸¥ °ÍÀÏÁö¸¦ ¾Ë ¼ö ¾ø½À´Ï´Ù.

MX ÀÇ Ã¼Å©´Â µðÆúÆ®¿¡¼­´Â ¹«È¿°¡ µÇ¾î ÀÖ¾î, Çö½ÃÁ¡¿¡¼­´Â UNIX Ç÷§Æû¿¡¼­¸¸ ¼­Æ÷Æ®Çϰí ÀÖ½À´Ï´Ù. MX ÀÇ Ã¼Å©¸¦ À¯È¿ÇÏ°Ô ÇÏ·Á¸é ,Zend_Validate_EmailAddress constructor¡¡ ¡¡ ÀÇ 2 ¹øÂ°ÀÇ ÆÄ¶ó¹ÌÅ͸¦ °Ç³×ÁÝ´Ï´Ù. constructor.


<?php
$validator 
= new Zend_Validate_EmailAddress(Zend_Validate_Hostname::ALLOW_DNStrue);

ȤÀº,true ¶Ç´Â false (À»)¸¦ $validator->setValidateMx() ¿¡ °Ç³×ÁÖ´Â °ÍÀ¸·Î, MX ÀÇ °ËÁõÀ» À¯È¿ ȤÀº ¹«È¿·Î ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

ÀÌ ¼³Á¤À» À¯È¿ÇÏ°Ô Çϸé, ³×Æ®¿öÅ© ÇÔ¼ö¸¦ ÀÌ¿ëÇØ ¸ÞÀÏ ÁÖ¼ÒÀÇ È£½ºÆ®¸íºÎ¿¡ ´ëÇÑ´Ù MX ·¹ÄÚµåÀÇ Á¸Àç üũ¸¦ ÇÕ´Ï´Ù. À̰Ϳ¡ ÀÇÇØ, ½ºÅ©¸³Æ®ÀÇ Ã³¸® ¼Óµµ°¡ ÀúÇÏÇÏ´Â °Í¿¡ Á¶½ÉÇØ ÁÖ¼¼¿ä.

±¹Á¦È­ µµ¸ÞÀθíÀÇ °ËÁõ

Zend_Validate_EmailAddress (Àº)´Â, µµ¸ÞÀξȿ¡ ±¹Á¦ ¹®ÀÚ°¡ »ç¿ëµÇ°í ÀÖ´Â °æ¿ìµµ ó¸®ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ µµ¸ÞÀÎÀº, ±¹Á¦È­ µµ¸ÞÀθí (International Domain Name: IDN) (À¸)·Î ºÒ¸®°í ÀÖ½À´Ï´Ù.À̰ÍÀº µðÆúÆ®·Î À¯È¿ÇÏ°Ô µÇ¾î ÀÖ½À´Ï´Ù¸¸, ¹«È¿·Î ÇÏ´Â °Íµµ °¡´ÉÇÕ´Ï´Ù. ¹«È¿·Î ÇÏ·Á¸é ,Zend_Validate_EmailAddress ÇÏÁö¸¸ ³»ºÎ¿¡¼­ º¸°ü À¯ÁöÇϰí ÀÖ´Ù Zend_Validate_Hostname ¿ÀºêÁ§Æ®ÀÇ ¼³Á¤À» º¯°æÇÕ´Ï´Ù.


<?php
$validator
->hostnameValidator->setValidateIdn(false);

setValidateIdn() ÀÇ »ó¼¼ÇÑ »ç¿ë¹ýÀº, Zend_Validate_Hostname ÀÇ ¹®¼­¸¦ ÂüÁ¶ÇØ ÁֽʽÿÀ.

IDN ÀÇ °ËÁõÀº,DNS È£½ºÆ®¸íÀÇ °ËÁõÀ» À¯È¿ÇÏ°Ô Çϰí ÀÖ´Â °æ¿ì¿¡°Ô¸¸ ÇàÇØÁö´Â °Í¿¡ ÁÖÀÇÇսôÙ.

Åé ·¹º§ µµ¸ÞÀÎÀÇ °ËÁõ

µðÆúÆ®¿¡¼­´Â, È£½ºÆ®¸íÀÇ °ËÁõÀº ±âÁ¸ÀÇ TLD ÀÇ À϶÷¿¡ ±Ù°ÅÇØ ÇàÇØÁý´Ï´Ù. À̰ÍÀº µðÆúÆ®·Î À¯È¿ÇÏ°Ô µÇ¾î ÀÖ½À´Ï´Ù¸¸, ¹«È¿·Î ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.¹«È¿·Î ÇÏ·Á¸é , ¹«È¿·Î ÇÏ·Á¸é ,Zend_Validate_EmailAddress ÇÏÁö¸¸ ³»ºÎ¿¡¼­ º¸°ü À¯ÁöÇϰí ÀÖ´Ù Zend_Validate_Hostname ¿ÀºêÁ§Æ®ÀÇ ¼³Á¤À» º¯°æÇÕ´Ï´Ù.


<?php
$validator
->hostnameValidator->setValidateTld(false);

setValidateTld() ÀÇ »ó¼¼ÇÑ »ç¿ë¹ýÀº, Zend_Validate_Hostname ÀÇ ¹®¼­¸¦ ÂüÁ¶ÇØ ÁֽʽÿÀ.

TLD ÀÇ °ËÁõÀº,DNS È£½ºÆ®¸íÀÇ °ËÁõÀ» À¯È¿ÇÏ°Ô Çϰí ÀÖ´Â °æ¿ì¿¡°Ô¸¸ ÇàÇØÁö´Â °Í¿¡ ÁÖÀÇÇսôÙ.

39.2.9. Float

$value ÇÏÁö¸¸ ºÎµ¿ ¼Ò¼öÁ¡Ä¡ÀÎ °æ¿ì¿¡°Ô¸¸ true (À»)¸¦ µ¹·ÁÁÝ´Ï´Ù.

39.2.10. GreaterThan

$value ÇÏÁö¸¸ ÃÖ¼ÒÄ¡º¸´Ù Å« °æ¿ì¿¡°Ô¸¸ true (À»)¸¦ µ¹·ÁÁÝ´Ï´Ù.

39.2.11. Hex

$value ÇÏÁö¸¸16Áø¹®ÀÚ¸¸À¸·Î ±¸¼ºµÇ¾î ÀÖ´Â °æ¿ì¿¡°Ô¸¸ true (À»)¸¦ µ¹·ÁÁÝ´Ï´Ù.

39.2.12. È£½ºÆ®¸í

Zend_Validate_Hostname (Àº)´Â, È£½ºÆ®¸íÀÌ »ç¾çÀ» ä¿ö ÀÖ´ÂÁö ¾î¶²ÁöÀÇ °ËÁõÀ» ½Ç½ÃÇÕ´Ï´Ù. 3Á¾·ùÀÇ Çü½ÄÀÇ È£½ºÆ®¸í, ÁïDNS È£½ºÆ®¸í (¿¹¸¦ µé¾î domain.com),IP ÁÖ¼Ò (¿¹¸¦ µé¾î 1.2.3.4) ±×¸®°í ·ÎÄà ȣ½ºÆ®¸í (¿¹¸¦ µé¾î localhost) ÀÇ °ËÁõÀÌ °¡´ÉÇÕ´Ï´Ù. µðÆúÆ®¿¡¼­´Â DNS È£½ºÆ®¸í¸¸ÀÌ À¯È¿°¡ µË´Ï´Ù.

±âº»ÀûÀÎ »ç¿ë¹ý

±âº»ÀûÀÎ »ç¿ë¹ýÀº, ÀÌÇÏ¿Í °°ÀÌ µË´Ï´Ù.


<?php
require_once 'Zend/Validate/Hostname.php';
$validator = new Zend_Validate_Hostname();
if (
$validator->isValid($hostname)) {
    
// È£½ºÆ®¸íÀº ¿Ã¹Ù¸¥ Çü½Ä°°½À´Ï´Ù
} else {
    
// ºÎÁ¤ÇÑ Çü½ÄÀ̹ǷÎ, ÀÌÀ¯¸¦ Ç¥½ÃÇÕ´Ï´Ù
    
foreach ($validator->getMessages() as $message) {
        echo 
"$messagen";
    }
}

À̰ÍÀº, È£½ºÆ®¸í $hostname (À»)¸¦ °ËÁõÇØ, ½ÇÆÐÇßÀ» °æ¿ì´Â ±× ¿øÀÎÀ» ³ªÅ¸³»´Â Æí¸®ÇÑ ¿¡·¯ ¸Þ¼¼Áö¸¦ $validator->getMessages() ±×¸®°í ÃëµæÇÕ´Ï´Ù.

´Ù¾çÇÑ Çü½ÄÀÇ È£½ºÆ®¸íÀÇ °ËÁõ

IP ÁÖ¼Ò³ª ·ÎÄà ȣ½ºÆ®¸í, ȤÀº ±× ¾çÂÊ ¸ðµÎ¸¦ ¿Ã¹Ù¸¥ È£½ºÆ®¸íÀ¸·Î¼­ ÀÎÁ¤ÇÏ°í ½ÍÀº °Íµµ ÀÖ°ÚÁö¿ä. ±× °æ¿ì´Â,Zend_Validate_Hostname ÀÇ ÀνºÅϽº¸¦ ÀÛ¼ºÇÒ ¶§¿¡ ÆÄ¶ó¹ÌÅ͸¦ °Ç³×ÁÝ´Ï´Ù. ÀÌ ÆÄ¶ó¹ÌÅÍ¿¡´Â, ¾î´À Çü½ÄÀÇ È£½ºÆ®¸íÀ» Çã°¡ÇÏ´ÂÁö¸¦ ³ªÅ¸³»´Â Á¤¼öÄ¡¸¦ ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù. °¡´ÉÇÑ ÇÑ,Zend_Validate_Hostname ÀÇ Á¤¼ö¸¦ »ç¿ëÇϵµ·Ï ÇսôÙ.

Zend_Validate_Hostname ÀÇ Á¤¼ö´Â ´ÙÀ½°ú °°½À´Ï´Ù.ALLOW_DNS ÇÏ DNS È£½ºÆ®¸í¸¸À» Çã°¡ÇØ, ALLOW_IP ÇÏ IP ÁÖ¼Ò¸¦ Çã°¡ÇÕ´Ï´Ù.¶Ç ALLOW_LOCAL (Àº)´Â ·ÎÄà ³×Æ®¿öÅ©¸íÀ» Çã°¡ÇØ,ALLOW_ALL (Àº)´Â À̰͵é 3Á¾·ù¸¦ ¸ðµÎ Çã°¡ÇÕ´Ï´Ù. IP ÁÖ¼Ò¸¸À» üũÇÏ·Á¸é , ÀÌÇÏÀÇ ¿¹ÀÇ °°°Ô ÇÕ´Ï´Ù.


<?php
require_once 'Zend/Validate/Hostname.php';
$validator = new Zend_Validate_Hostname(Zend_Validate_Hostname::ALLOW_IP);
if (
$validator->isValid($hostname)) {
    
// È£½ºÆ®¸íÀº ¿Ã¹Ù¸¥ Çü½Ä°°½À´Ï´Ù
} else {
    
// ºÎÁ¤ÇÑ Çü½ÄÀ̹ǷÎ, ÀÌÀ¯¸¦ Ç¥½ÃÇÕ´Ï´Ù
    
foreach ($validator->getMessages() as $message) {
        echo 
"$messagen";
    }
}

ALLOW_ALL (À»)¸¦ »ç¿ëÇØ ¸ðµç Çü½ÄÀ» Çã°¡ÇÏ´Â °Í ¿Ü¿¡, ÀÌ·¯ÇÑ Çü½ÄÀ» Á¶ÇÕÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î,DNS ¹× ·ÎÄà ȣ½ºÆ®¸íÀ» Çã°¡ÇÏ·Á¸é , Zend_Validate_Hostname ÀÇ ÀνºÅϽº¸¦ ´ÙÀ½°ú °°ÀÌ ÀÛ¼ºÇÕ´Ï´Ù.


<?php
$validator 
= new Zend_Validate_Hostname(Zend_Validate_Hostname::ALLOW_DNS Zend_Validate_Hostname::ALLOW_IP);

±¹Á¦È­ µµ¸ÞÀθíÀÇ °ËÁõ

±¹º° ÄÚµå Åé ·¹º§ µµ¸ÞÀÎ (Country Code Top Level Domains: ccTLDs) ÀÇ ÀϺÎ, ¿¹¸¦ µé¾î 'de' (µ¶ÀÏ) µî¿¡¼­´Â, µµ¸ÞÀθí¾È¿¡ ±¹Á¦È­ ¹®ÀÚÀÇ »ç¿ëÀ» ¼­Æ÷Æ®Çϰí ÀÖ½À´Ï´Ù. À̰ÍÀº, ±¹Á¦È­ µµ¸ÞÀθí (International Domain Names: IDN) (ÀÌ)¶ó°í ÇÏ´Â °ÍÀÔ´Ï´Ù. ÀÌ·¯ÇÑ µµ¸ÞÀο¡ ´ëÇØ¼­µµ,Zend_Validate_Hostname ÀÇ °ËÁõ ÇÁ·Î¼¼½º·Î »ç¿ëÇÏ´Â ¹®ÀÚ¸¦ È®ÀåÇÏ´Â °ÍÀ¸·Î °ËÁõÇÒ ¼ö ÀÖ½À´Ï´Ù.

ÇöÀç´Â, ´ÙÀ½°ú °°Àº ccTLD (À»)¸¦ ¼­Æ÷Æ®Çϰí ÀÖ½À´Ï´Ù.

  • at (¿À½ºÆ®¸®¾Æ)

  • ch (½ºÀ§½º)

  • li (¸®È÷ÅÙ½´Å¸ÀÎ)

  • de (µ¶ÀÏ)

  • fi (Çɶõµå)

  • hu (Çë°¡¸®)

  • no (³ë¸£¿þÀÌ)

  • se (½º¿þµ§)

IDN µµ¸ÞÀο¡ ´ëÇÑ ¸ÅĪÀ» ½Ç½ÃÇÏ´Â ¹æ¹ýÀº, Åë»óÀÇ È£½ºÆ®¸íÀÇ °æ¿ì¿Í ¿ÏÀüÈ÷ °°½À´Ï´Ù. ±×·¸´Ù°í ÇÏ´Â °Íµµ,IDN ÀÇ ¸ÅĪÀº µðÆúÆ®·Î À¯È¿ÇÏ°Ô µÇ¾î Àֱ⠶§¹®ÀÔ´Ï´Ù. IDN ÀÇ °ËÁõÀ» ¹«È¿·Î ÇÏ°í ½ÍÀº °æ¿ì´Â,Zend_Validate_Hostname ÀÇ constructor¡¡ ¡¡ ¿¡ ÆÄ¶ó¹ÌÅ͸¦ °Ç³×Áֵ簡, ȤÀº $validator->setValidateIdn() ¸Þ¼Òµå¸¦ »ç¿ëÇÕ´Ï´Ù.

IDN ÀÇ °ËÁõÀ» ¹«È¿·Î ÇÏ·Á¸é ,Zend_Validate_Hostname ÀÇ constructor¡¡ ¡¡ ¿¡ µÎ¹øÂ°ÀÇ ÆÄ¶ó¹ÌÅ͸¦ ´ÙÀ½°ú °°ÀÌ °Ç³×ÁÝ´Ï´Ù.


<?php
$validator 
= new Zend_Validate_Hostname(Zend_Validate_Hostname::ALLOW_DNSfalse);

ȤÀº,TRUE ¶Ç´Â FALSE (À»)¸¦ $validator->setValidateIdn() ¿¡ °Ç³×ÁÖ´Â °ÍÀ¸·Î, IDN ÀÇ °ËÁõÀ» À¯È¿ ȤÀº ¹«È¿·Î ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ÇöÀç ¼­Æ÷Æ®µÇ¾î ÀÖÁö ¾Ê´Ù IDN È£½ºÆ®¸í¿¡ ´ëÇÑ ¸ÅĪÀ» ½Ç½ÃÇÏ·Á°í Çϸé, ±¹Á¦È­ ¹®ÀÚ°¡ Æ÷ÇԵǾî ÀÖ´Â °æ¿ì¿¡ °ËÁõ¿¡ ½ÇÆÐÇÕ´Ï´Ù. Ãß°¡ÀÇ ¹®ÀÚ¸¦ ÁöÁ¤Çß´Ù ccTLD ÆÄÀÏÀÌ Zend/Validate/Hostname ¿¡ Á¸ÀçÇÏÁö ¾Ê´Â °æ¿ì´Â, Åë»óÀÇ È£½ºÆ®¸íÀÇ °ËÁõÀ» ½Ç½ÃÇÕ´Ï´Ù.

IDN ÀÇ °ËÁõÀº,DNS È£½ºÆ®¸íÀÇ °ËÁõÀ» À¯È¿ÇÏ°Ô Çϰí ÀÖ´Â °æ¿ì¿¡°Ô¸¸ ÇàÇØÁö´Â °Í¿¡ ÁÖÀÇÇսôÙ.

Åé ·¹º§ µµ¸ÞÀÎÀÇ °ËÁõ

µðÆúÆ®¿¡¼­´Â, È£½ºÆ®¸íÀÇ °ËÁõÀº ±âÁ¸ÀÇ TLD ÀÇ À϶÷¿¡ ±Ù°ÅÇØ ÇàÇØÁý´Ï´Ù. ÀÌ ±â´ÉÀÌ ºÒÇÊ¿äÇÑ °æ¿ì´Â,IDN ¼­Æ÷Æ®¸¦ ¹«È¿·Î ÇÏ´Â °Í °°Àº ¹æ¹ýÀ¸·Î ¹«È¿·Î ÇÒ ¼ö ÀÖ½À´Ï´Ù. TLD ÀÇ °ËÁõÀ» ¹«È¿·Î ÇÏ·Á¸é ,Zend_Validate_Hostname ÀÇ constructor¡¡ ¡¡ ¿¡ 3¹øÂ°ÀÇ ÆÄ¶ó¹ÌÅ͸¦ °Ç³×ÁÝ´Ï´Ù. ÀÌÇÏÀÇ ¿¹¿¡¼­´Â,IDN ÀÇ °ËÁõÀº µÎ¹øÂ°ÀÇ ÆÄ¶ó¹ÌÅÍ·Î À¯È¿ÇÏ°Ô Çϰí ÀÖ½À´Ï´Ù.


<?php
$validator 
= new Zend_Validate_Hostname(Zend_Validate_Hostname::ALLOW_DNStruefalse);

ȤÀº,TRUE ¶Ç´Â FALSE (À»)¸¦ $validator->ValidateTld() ¿¡ °Ç³×ÁÖ´Â °ÍÀ¸·Î, TLD ÀÇ °ËÁõÀ» À¯È¿ ȤÀº ¹«È¿·Î ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

TLD ÀÇ °ËÁõÀº,DNS È£½ºÆ®¸íÀÇ °ËÁõÀ» À¯È¿ÇÏ°Ô Çϰí ÀÖ´Â °æ¿ì¿¡°Ô¸¸ ÇàÇØÁö´Â °Í¿¡ ÁÖÀÇÇսôÙ.

39.2.13. InArray

"needle" $value ÇÏÁö¸¸ "haystack" ¹è¿­¿¡ Æ÷ÇԵǴ °æ¿ì¿¡°Ô¸¸ true (À»)¸¦ µ¹·ÁÁÝ´Ï´Ù.strict ¿É¼ÇÀ» true (À¸)·Î Çϸé,$value ÀÇ Çüŵµ È®ÀÎÇÕ´Ï´Ù.

39.2.14. Int

$value ÇÏÁö¸¸ Á¤¼öÄ¡ÀÎ °æ¿ì¿¡°Ô¸¸ true (À»)¸¦ µ¹·ÁÁÝ´Ï´Ù.

39.2.15. Ip

$value ÇÏÁö¸¸ Ÿ´çÇÑ Çü½ÄÀÇ IP ÁÖ¼ÒÀÎ °æ¿ì¿¡°Ô¸¸ true (À»)¸¦ µ¹·ÁÁÝ´Ï´Ù.

39.2.16. LessThan

$value ÇÏÁö¸¸ ÃÖ´ëÄ¡º¸´Ù ÀÛÀº °æ¿ì¿¡°Ô¸¸ true (À»)¸¦ µ¹·ÁÁÝ´Ï´Ù.

39.2.17. NotEmpty

$value ÇÏÁö¸¸ ÇÏ´ÃÀÇ °ªÀÌ ¾Æ´Ñ °æ¿ì¿¡°Ô¸¸ true (À»)¸¦ µ¹·ÁÁÝ´Ï´Ù.

39.2.18. Regex

$value ÇÏÁö¸¸ Á¤±Ô Ç¥Çö ÆÐÅÏ¿¡ ¸ÅÄ¡ÇÏ´Â °æ¿ì¿¡°Ô¸¸ true (À»)¸¦ µ¹·ÁÁÝ´Ï´Ù.

39.2.19. StringLength

¹®ÀÚ¿­ $value ÀÇ ±æÀ̰¡ ÃÖ¼ÒÄ¡ ÀÌ»ó, ÇÑÆí ÃÖ´ëÄ¡ ÀÌÇÏ (ÃÖ´ëÄ¡°¡ null ÀÌ¿Ü ¶§) ÀÇ °æ¿ì¿¡°Ô¸¸ true (À»)¸¦ µ¹·ÁÁÝ´Ï´Ù. ¹öÁ¯ 1.1.0 ÀÌÈÄ¿¡¼­´Â,setMin() ±×¸®°í ÃÖ´ëÄ¡º¸´Ù Å« °ªÀ» ÁöÁ¤Çϰųª setMax() ±×¸®°í ÃÖ¼ÒÄ¡º¸´Ù ÀÛÀº °ªÀ» ¼³Á¤Çϰųª ÇßÀ» °æ¿ì¿¡ ¿¹¿Ü¸¦ ½½·Î¿ì ÇÕ´Ï´Ù. ¹öÁ¯ 1.0.2 ÀÌÈÄ¿¡¼­´Â, ÀÌ Å¬·¡½º´Â UTF-8 ¿Ü¿¡ iconv.internal_encoding ¿¡ ÀǰÅÇÑ ±× ¿ÜÀÇ ¹®ÀÚ ÀÎÄÚµùµµ ¼­Æ÷Æ®ÇÕ´Ï´Ù.