验证URL - URL在没有TLD的情况下有效吗?

时间:2015-01-18 07:36:46

标签: php validation

所以,我有一个输入框,有人可以输入一个URL。当他们提交论坛时,我希望检查它是否是有效的URL。

现在,我的问题是“http://someurl”(没有TLD)有效,“someurl.com”或“www.someurl.com”无效(没有http://)。有办法解决这个问题吗?

$input = 'someurl.com'; // Could also be an IP

if (filter_var($input, FILTER_VALIDATE_IP)) {
    echo "IP Valid";
} else if (filter_var($input, FILTER_VALIDATE_URL)) {
    echo "URL Valid";
} else {
    echo "Not an IP or URL";
}

1 个答案:

答案 0 :(得分:1)

修复方法是自己插入http://,因为网址必须拥有方案。这就是简单www.someurl.com无效的原因:它没有方案。

没有顶级域名的网址完全没问题,例如http://localhost。在正确设置search domain的局域网中,您还可以使用没有域名的网址:例如,如果您公司的搜索域位于somecompany.com并且您拥有网址http://fileserver,那么您的系统将会在内部构建完全限定的域名fileserver.somecompany.com。有些网址根本没有主机(例如,tel:),BTW。