※この記事は読者によって投稿されたユーザー投稿のため、編集部の見解や意向と異なる場合があります。 また、編集部はこの内容について正確性を保証できません。
ヒューマンリソシア株式会社はコラム「便利なFilter関数を使いこなそう その5」を公開しました。 今回も検証フィルタの続きです。 今回は、ネットワークに関連するもののうち「URL」のフィルタを見ていきます。 function hoge($s) { $options = array( ); var_dump($s); var_dump(filter_var($s, FILTER_VALIDATE_URL, $options)); echo "\n"; } // hoge('http://www.example.com'); hoge('http://www.example.com:8080'); hoge('http://user:pass@www.example.com'); hoge('//example.com'); // false hoge('ftp://example.com'); hoge('https://example.com/dir/filename.php'); hoge('https://example.com/dir/filename.php?param1=test&param2=test#anc'); URLは、シンプルなフォーマットから「そこそこややこしい」フォーマットまであります。 URLには「ユーザ名やパスワード」「ポート番号」「パラメタ」「アンカー」など 色々なものが埋め込めますが、それら全てを適切に把握してくれます。 HTMLを書く時に重宝する「プロトコルを省略する記法( ‘//example.com’ )はfalseになってしまいますが、 それ以外はすべて識別可能であることが分かります。 さてこのフィルタにも2つのオプションがあります。 function hoge($s) { $options = array( 'flags' => FILTER_FLAG_PATH_REQUIRED ); var_dump($s); var_dump(filter_var($s, FILTER_VALIDATE_URL, $options)); echo "\n"; } // hoge('http://www.example.com'); // false hoge('http://www.example.com/'); hoge('http://www.example.com:8080'); // false hoge('http://user:pass@www.example.com'); // false hoge('https://example.com/filename.php'); hoge('https://example.com/dir/filename.php'); hoge('https://example.com/dir/filename.php?param1=test&param2=test#anc'); hoge('https://example.com/?param1=test&param2=test#anc'); FILTER_FLAG_PATH_REQUIREDは「URLの中にパスがあること」を強要します。 なので、上3つは「パス部分がない」のでNGになります。 「’http://www.example.com/’」は、最後の / が「パス部分」になるので、falseにはりません。 似たようなフラグで「URLパラメタが必須」というものがあります。 この続きは以下をご覧くださいhttp://resocia.jp/column/5258/
この記事のキーワード

人気記事トップ10

人気記事ランキングをもっと見る