In PHP, filter_var('www.example.com', FILTER_VALIDATE_URL)
回报false
。它是否正确?不是www.example.com
有效的 URL,或协议(http://、ftp:// 等)需要在 URL 中明确说明才能正式正确?
这不是有效的 URL。前缀为http://
从来都不是一个非常用户友好的事情,所以现代浏览器假设你只是输入一个域名,你指的是http。正确的是,软件库有点挑剔!
您可以采取的一种方法是将字符串传递给解析网址 http://php.net/parse_url,然后添加任何缺少的元素,例如
if ( $parts = parse_url($url) ) {
if ( !isset($parts["scheme"]) )
{
$url = "http://$url";
}
}
有趣的是,当您使用 FILTER_VALIDATE_URL 时,它实际上在内部使用 parse_url 来找出方案是什么(查看源码) http://lxr.php.net/xref/PHP_5_4/ext/filter/logical_filters.c#php_filter_validate_url。感谢salathe 在下面的评论中发现了这一点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)