在StackOverflow中已经讨论了很多主题,但是我设法探索的所有答案都无法产生我需要的结果。我想在将URL插入数据库之前检查该值实际上是否为URL。 PHP FILTER_VALIDATE_URL的默认函数返回true,即使我们只提供httpp://例子PHP中的URL验证
但我需要验证该值只有当它是一个真正的域名,如example.net,example.com等。让我们尝试一个例如:
案例1:
$url = "http://example";
if(!filter_var($url, FILTER_VALIDATE_URL) === false) {
return true;
}
这上面返回true,但域是无效的。
案例2:
$url = "http://google.com";
if(!filter_var($url, FILTER_VALIDATE_URL) === false) {
return true;
}
返回true,那也没关系。
但情况1的任何可能的解决方案?请帮忙。
P.S .:我使用CURL,它的工作原理但响应速度太慢(超过5秒)。任何固体解决方案将不胜感激。
什么是真正的* *域?我不知道你认为什么是有效的 –
Will [get_headers](http://it.php.net/manual/en/function.get-headers.php)有帮助吗? – SearchAndResQ
感谢@Dagon,感谢您的回应。对不起,我在这个问题上的拼写错误。我编辑过它。我的意思是http://示例不能是有效的域,因为它缺少TLD(.com,.net等),但该函数将其视为有效的域。我希望我让你明确我的问题。 – Rehmat