27.5. Validating Hostnames
Précédent | Chapitre 27. Zend_Validate | Suivant

## 27.5. Validating Hostnames

Zend_Validate_Hostname allows you to validate a hostname against a set of known specifications. It is possible to check for three different types of hostnames: a DNS Hostname (i.e. domain.com), IP address (i.e. 1.2.3.4), and Local hostnames (i.e. localhost). By default only DNS hostnames are matched.

Basic usage

A basic example of usage is below:

    <?php
    require_once 'Zend/Validate/Hostname.php';
    $validator = new Zend_Validate_Hostname();
    if ($validator->isValid($hostname)) {
        // ostname appears to be valid
    } else {
        // hostname is invalid; print the reasons
        foreach ($validator->getMessages() as $message) {
            echo "$message\n";
        }
    }

This will match the hostname `$hostname` and on failure populate `$validator->getMessages()` with useful error messages.

Validating different types of hostnames

You may find you also want to match IP addresses, Local hostnames, or a combination of all allowed types. This can be done by passing a parameter to Zend_Validate_Hostname when you instantiate it. The paramter should be an integer which determines what types of hostnames are allowed. You are encouraged to use the Zend_Validate_Hostname constants to do this.

The Zend_Validate_Hostname constants are: `ALLOW_DNS` to allow only DNS hostnames, `ALLOW_IP` to allow IP addresses, `ALLOW_LOCAL` to allow local network names, and `ALLOW_ALL` to allow all three types. To just check for IP addresses you can use the example below:

    <?php
    require_once 'Zend/Validate/Hostname.php';
    $validator = new Zend_Validate_Hostname(Zend_Validate_Hostname::ALLOW_IP);
    if ($validator->isValid($hostname)) {
        // ostname appears to be valid
    } else {
        // hostname is invalid; print the reasons
        foreach ($validator->getMessages() as $message) {
            echo "$message\n";
        }
    }

As well as using `ALLOW_ALL` to accept all hostnames types you can combine these types to allow for combinations. For example, to accept DNS and Local hostnames instantiate your Zend_Validate_Hostname object as so:

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

Précédent | Niveau supérieur | Suivant
27.4. Validating Email Addresses | Sommaire | Chapitre 28. Zend_View