zf2验证uri - 意外结果

时间:2015-04-13 14:28:36

标签: validation zend-framework2 uri

我需要评估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

感谢

1 个答案:

答案 0 :(得分:1)

您正在验证主机名。 " http://www.example.com"不是有效的主机名。 "例如"是有效的主机名。

它完全符合您的要求。 " HTTP://"不是主机名的一部分,所以这是正确的。 "例如"也是一个有效的主机名(就像" localhost"是)。

您应该使用URI帮助程序从URI中获取主机名,然后使用主机名验证程序对其进行验证。

我最近开发了一个可以帮助你的URI助手:http://packagist.org/packages/enrise/urihelper