Php 为什么仅针对此URL筛选\u验证\u URL返回FALSE?

Php 为什么仅针对此URL筛选\u验证\u URL返回FALSE?,php,filter-var,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!"; } 这将显示: 无效url(错误) 用于上面的url,但不用于其他更简单的url

我有以下代码:

$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!";
}
这将显示:

无效url(错误)

用于上面的url,但不用于其他更简单的url。这是虫子吗?您甚至可以访问该图像

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

谢谢

代码为我打印了“工作!”。您使用的是什么版本的PHP?您是否可以发布一个指向包含以下内容的PHP页面的链接:

另外,请参阅。

中的源存档包含ext/filter/logical_filter.c的奇怪版本,我在中找不到该版本。 此版本对url的主机部分执行“额外”测试

e = url->host + strlen(url->host);
s = url->host;

while (s < e) {
  if (!isalnum((int)*(unsigned char *)s) && *s != '_' && *s != '.') {
    goto bad_url;
  }
  s++;
}
e=url->host+strlen(url->host);
s=url->host;
而(s