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); }