为什么FILTER_VALIDATE_URL仅为此网址返回FALSE?

Rya*_*yan 2 php filter-var

我有以下代码:

$url = "http://icons3.iconfinder.netdna-cdn.com/data/icons/pool/poolbird.png";

if (filter_var ($url, FILTER_VALIDATE_URL) === FALSE) {

    echo "Invalid Url";
    exit;

} else {

    echo "Works!";
}
Run Code Online (Sandbox Code Playgroud)

这显示:

无效的网址(FALSE)

对于上面的网址,但不适用于其他更简单的网址.这是一个错误吗?你甚至可以访问图像.

最重要的是解决这个问题的方法是什么?

谢谢

小智 5

PHP <5.2.13包含一个错误,FILTER_VALIDATE_URL其中包含考虑包含' - '的网址(http://bugs.php.net/51192).您需要升级您的php副本或使用不同的过滤机制.