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