作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
在 PHP 中,filter_var('www.example.com', FILTER_VALIDATE_URL)
返回 false
。这个对吗? www.example.com
不是一个有效的 URL,或者协议(protocol)(http://、ftp://等)是否需要在 URL 中明确说明才能正式正确?
最佳答案
这不是一个有效的 URL。用 http://
作为前缀从来都不是一件对用户非常友好的事情,所以如果你只是输入一个域名,现代浏览器就会假设你指的是 http。软件库确实有点挑剔!
您可以采用的一种方法是通过 parse_url 传递字符串,然后添加任何缺少的元素,例如
if ( $parts = parse_url($url) ) {
if ( !isset($parts["scheme"]) )
{
$url = "http://$url";
}
}
有趣的是,当您使用 FILTER_VALIDATE_URL 时,它实际上在内部使用 parse_url 来确定方案是什么 (view source) .感谢 salathe 在下面的评论中发现这一点。
关于php - FILTER_VALIDATE_URL 是否过于严格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9800452/
我是一名优秀的程序员,十分优秀!