输入字符串为:
https://lh
但是,使用:
var_dump(filter_var('https://lh', FILTER_VALIDATE_URL)) // string(10) "https://lh"
由于某种原因,上面的字符串被归类为有效的URL。我读过另一篇SO帖子,说FILTER_VALIDATE_URL
不限于http
协议,但上面的链接肯定不是任何协议的有效URL。
为什么会发生这种情况?
好的,所以后面有很多评论,有些离题,没有发布答案。
因此。。。
有效的URL不必使用FQDN,它可以只使用主机名。protocol://host:port/path/filename.foo?arguments
协议和主机名是启动连接所需的唯一东西,主机名的唯一关键部分是客户端必须能够解析它-主机文件、dns、带有附加搜索域的dns等
如果其他任何评论者觉得有必要进行编辑等,请随意。