【发布时间】:2013-12-18 22:16:41
【问题描述】:
我对 PHP 中的 URL 验证进行了一些研究,发现 StackOverflow 上有许多不同的答案,有些比其他答案更好,有些则非常陈旧和过时。
我有一个字段,用户可以在其中输入他们网站的网址。用户应该能够以任何形式输入 URL,例如:
example.com
www.example.com
http://example.com
http://www.example.com
https://example.com
https://www.example.com
PHP 带有一个function to validate URLs,但是,如果它没有http://,它会将 URL 标记为无效。
如何验证任何类型的 URL,无论有无 http:// 或 https://,以确保 URL 有效?
谢谢。
【问题讨论】:
-
你为什么不简单地将
http://附加到它上面呢? -
查看
parse_url()作为将 URL 分解为组件的功能,然后您可以修复您需要的任何内容,然后将它们全部缝合在一起以进行验证。有人在用户cmets中写了一个unparse_url()函数。 -
检查字符串是否以http开头,如果不是,则追加。
-
@Scuzzy:
parse_url()是一个非常不适合启动任何形式的 URL 验证的选择。很难找到任何无法通过parase_url()的输入。即使是带有多个模式和换行符的字符串也能通过。 -
@Bagwell 互联网老了,它仍然使用 TCP/IP。