为什么 filter_var()
接受并验证此 URL http://http://www.google.com
?
$website = "http://http://www.google.com";
echo filter_var($website, FILTER_VALIDATE_URL); // This outputs the value of $website
我认为这是错误的。对此有任何解决方案或修复吗?
phpinfo()
最佳答案
您似乎发现了 PHP 中的错误。 PHP 手册指出 FILTER_VALIDATE_URL 根据 http://www.faqs.org/rfcs/rfc2396.html 验证 uris
如果您阅读规范,PHP 显然无法按照指南正确验证。具体来说,在第 3 节(URI 语法组件)中,定义了方案(在您的情况下为 http)可能只存在一次,并且位于 uri 中唯一的冒号之前。
您应该在 https://bugs.php.net/ 报告此错误
找到它干得好!
关于php - filter_var() 接受无效的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17333612/