所以,我有一个输入框,有人可以输入一个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";
}
答案 0 :(得分:1)
修复方法是自己插入http://
,因为网址必须拥有方案。这就是简单www.someurl.com
无效的原因:它没有方案。
没有顶级域名的网址完全没问题,例如http://localhost
。在正确设置search domain的局域网中,您还可以使用没有域名的网址:例如,如果您公司的搜索域位于somecompany.com
并且您拥有网址http://fileserver
,那么您的系统将会在内部构建完全限定的域名fileserver.somecompany.com
。有些网址根本没有主机(例如,tel:
),BTW。