52

文字列に URL しか含まれていない場合、これが適切なチェック方法であるかどうか疑問に思っています。

if (stripos($string, 'http') == 0 && !preg_match('/\s/',$string)) {
  do_something();
}

stripos() は、文字列が「http」で始まるかどうかを
チェックします preg_match() 文字列にスペースが含まれているかどうかをチェックします

そうでない場合、文字列は URL に過ぎないと思いますが、その仮定は有効ですか? これを達成するためのより良い方法はありますか?

4

3 に答える 3

158

使用するfilter_var()

if (filter_var($string, FILTER_VALIDATE_URL)) { 
  // you're good
}

フィルターはさらに洗練されたものにすることができます。詳細については、マニュアルを参照してください。

于 2013-02-21T20:24:26.300 に答える
10

PHP では、URL http://www.php.net/manual/en/function.filter-var.phpを検証するより良い方法があります。

if(filter_var('http://example.com', FILTER_VALIDATE_URL)))
    echo 'this is URL';
于 2013-02-21T20:25:55.360 に答える