29.5. 校验主机名
上一页 | 第 29 章 Zend_Validate | 下一页

## 29.5. 校验主机名

Zend_Validate_Hostname允许你根据一组已知的规范来校验主机名。它检查三种不同的主机名：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)) {
        // ostname appears to be valid
    } else {
        // hostname is invalid; print the reasons
        foreach ($validator->getMessages() as $message) {
            echo "$message\n";
        }
    }

这个例子匹配主机名`$hostname`并在匹配失败的时候用`$validator->getMessages()`来获得有用的错误信息。

校验不同类型的主机名

你可能发现你也想匹配IP地址，本地主机名，或者是所有允许类型的组合。这个可以在当你实例化它的时候通过传递参数给Zend_Validate_Hostname来实现。 参数应该是一个整型数，它来决定哪种主机名被允许。我们鼓励你使用常量。

Zend_Validate_Hostname 常量是： `ALLOW_DNS` 允许DNS主机名， `ALLOW_IP` 允许IP地址， `ALLOW_LOCAL` 允许本地网络名，和`ALLOW_ALL` 允许所有三种类型。 你可以用下面的例子仅仅检查IP地址：

    <?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";
        }
    }

你可以用这些类型的组合，也可以用`ALLOW_ALL`来接受所有主机名类型。例如，你可以通过如下例子实例化Zend_Validate_Hostname对象来接受DNS和本地主机名:

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

上一页 | 上一级 | 下一页
29.4. 校验 Email 地址 | 起始页 | 第 30 章 Zend_XmlRpc