我需要评估uri,但验证者Hostname和Uri都没有帮助我。 也许是适当的隔垫。
使用以下代码
$oHostnameValidator = new Hostname(array('allow'=>Hostname::ALLOW_URI));
if(!$oHostnameValidator->isValid($value)){
$this->error(self::ER_WEB);
return false;
}
我想要的结果应该是
http://www.example.com >> true
www.example.com >> true
example.com >> true
example >> false
example. >> false
但是我得到了
http://www.example.com >> false >> wrong
www.example.com >> true
example.com >> true
example >> true >> wrong
example. >> true >> wrong
感谢
答案 0 :(得分:1)
您正在验证主机名。 " http://www.example.com"不是有效的主机名。 "例如"是有效的主机名。
它完全符合您的要求。 " HTTP://"不是主机名的一部分,所以这是正确的。 "例如"也是一个有效的主机名(就像" localhost"是)。
您应该使用URI帮助程序从URI中获取主机名,然后使用主机名验证程序对其进行验证。
我最近开发了一个可以帮助你的URI助手:http://packagist.org/packages/enrise/urihelper