我一直在阅读Stack Overflow上的各种帖子,试图找到一种在PHP中验证URL的理想方法。我的研究提出了三种可能的解决方案,但是,它们都不是理想的。
提到的三种方法是正则表达式,filter_var ($url, FILTER_VALIDATE_URL)
和parse_url ()
。第一种方法的问题已经众所周知,而最全面的验证正则表达式我可以找到跨页面。 PHP过滤扩展中内置的filter_var函数似乎有错误,例如将http:// ...等URL视为有效。 parse_url方法使用的函数从未用于URL验证,因此不能依赖于此任务。
我可能错过了PHP中的URL验证的其他选项吗?
答案 0 :(得分:2)
如果将filter_var
(基本上是一个跨页面的正则表达式检查)和其他正则表达式检查结合在一起,您认为它们的覆盖范围很好吗?
答案 1 :(得分:1)
我通常使用parse_url()
来检查/验证网址(在大多数情况下,我需要确定网址是否已经是有效的网址或相对网址)
if (parse_url($url, PHP_URL_SCHEME) != '')
{
// Url is absolute
}
else
{
// Url is not an absolute url, and therefore, need more validation...
}