我想知道在 php 中检查提供的 url 是否有效的最佳方法是什么...起初我尝试使用:
filter_var($url, FILTER_VALIDATE_URL) === false
但它不接受www.example.com
(没有协议)。所以我尝试了一个简单的修改:
protected function checkReferrerUrl($url) {
if(strpos($url, '://') == false) {
$url = "http://".$url;
}
if(filter_var($url, FILTER_VALIDATE_URL) === false) {
return false;
}
return true;
}
现在它可以正常工作,www.example.com
但也可以接受 simple foo
,因为它转换为http://foo
. 然而,虽然这不是一个有效的公共网址,但我认为......那你有什么建议?回到传统的正则表达式?