Zend_Validate_Hostname pozwala ci na przeprowadzenie walidacji adresów serwerów w oparciu o zestaw znanych specyfikacji. Możliwe jest sprawdzenie trzech różnych typów adresów serwerów: adresu DNS (np. domain.com), adresu IP (np. 1.2.3.4), oraz adresu lokalnego (np. localhost). Domyślne będzie to sprawdzane jedynie w kontekście adresów DNS.
Podstawowe użycie
Poniżej podstawowy przykład użycia:
<?php require_once 'Zend/Validate/Hostname.php'; $validator = new Zend_Validate_Hostname(); if ($validator->isValid($hostname)) { // nazwa serwera wygląda na prawidłową } else { // nazwa jest nieprawidłowa; wyświetl powody foreach ($validator->getMessages() as $message) { echo "$message\n"; } }
Sprawdzi to nazwę serwera $hostname
i w przypadku niepowodzenia
wypełni $validator->getMessages()
użytecznymi informacjami
informującymi o błędach.
Walidacja różnych typów adresów serwerów
Może się okazać, że chcesz zezwolić na użycie adresów IP, adresów lokalnych lub kombinacji dozwolonych typów. Możesz to zrobić przekazując parametr do obiektu Zend_Validate_Hostname gdy tworzysz jego instancję. Parametr powinien być liczbą całkowitą określającą, ktorego typu adresy są dozwolone. Zalecamy użycie stałych klasy Zend_Validate_Hostname w tym celu.
Stałe klasy Zend_Validate_Hostname to: ALLOW_DNS
aby
zezwalać tylko na adresy DNS, ALLOW_IP
aby zezwalać tylko
na adresy IP, ALLOW_LOCAL
aby zezwalać tylko na adresy
lokalne, oraz ALLOW_ALL
aby zezwalać na wszystkie typy.
Aby tylko sprawdzić adres dla adresów IP możesz użyć poniższego przykładu:
<?php require_once 'Zend/Validate/Hostname.php'; $validator = new Zend_Validate_Hostname(Zend_Validate_Hostname::ALLOW_IP); if ($validator->isValid($hostname)) { // nazwa serwera wygląda na prawidłową } else { // nazwa jest nieprawidłowa; wyświetl powody foreach ($validator->getMessages() as $message) { echo "$message\n"; } }
Tak samo dobrze jak używając stałej ALLOW_ALL
do określenia
akceptacji adresów wszystkich typow, możesz użyć dowolnej kombinacji
tych typów. Na przykład aby akceptować adresy DNS oraz adresy lokalne,
uwtórz instancję obiektu Zend_Validate_Hostname w taki sposób:
<?php $validator = new Zend_Validate_Hostname(Zend_Validate_Hostname::ALLOW_DNS | Zend_Validate_Hostname::ALLOW_IP); }