提供されたURLが有効かどうかを確認するためのphpでの最良の方法は何でしょうか...最初に試したのは次のとおりです。
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
単純なものも受け入れます。ただし、これは有効なパブリック URL ではないと思いますが...では、何を提案しますか? 従来の正規表現に戻りますか?foo
http://foo