※この記事は読者によって投稿されたユーザー投稿のため、編集部の見解や意向と異なる場合があります。 また、編集部はこの内容について正確性を保証できません。
ヒューマンリソシア株式会社はコラム「便利なFilter関数を使いこなそう その4」を公開しました。 今回も検証フィルタの続きです。 今回は、ネットワークに関連するものを見ていきましょう。 まずは「IPアドレス表記であるか」を確認する FILTER_VALIDATE_IP をみていきます。 function hoge($s) { $options = array( ); var_dump($s); var_dump(filter_var($s, FILTER_VALIDATE_IP, $options)); echo "\n"; } // hoge('localhost'); // false hoge('127.0.0.1'); hoge('127.0.0.256'); // false hoge('2001:0db8:bd05:01d2:288a:1fc0:0001:10ee'); hoge('2001:db8::9abc'); hoge('::9abc'); hoge('2001::db8::9abc'); // false IPv6もお手のもの、省略表記も適切に解釈してくれます。「2箇所省略したらNGだよ」という規約が 遵守されているのは、’2001::db8::9abc’がfalseであることによって理解できるかと思います。 これだけでも十分に便利なのですが、フラグによって「IPv4のみ」「IPv6のみ」の指定も可能です。 function hoge($s) { $options = array( 'flags' => FILTER_FLAG_IPV4 ); var_dump($s); var_dump(filter_var($s, FILTER_VALIDATE_IP, $options)); echo "\n"; } // hoge('localhost'); hoge('127.0.0.1'); hoge('127.0.0.256'); hoge('2001:0db8:bd05:01d2:288a:1fc0:0001:10ee'); hoge('2001:db8::9abc'); hoge('::9abc'); hoge('2001::db8::9abc'); IPv6は、定数「FILTER_FLAG_IPV6」を渡せばOKです。 またさらに「プライベートアドレスはNG」「予約済みアドレスはNG」という、範囲まで見てくれるフラグがあります。 function hoge($s) { $options = array( // プライベートアドレスの範囲はNG 'flags' => FILTER_FLAG_NO_PRIV_RANGE ); var_dump($s); var_dump(filter_var($s, FILTER_VALIDATE_IP, $options)); echo "\n"; } // hoge('127.0.0.1'); hoge('192.168.0.1'); // false hoge('50.60.70.80'); この続きは以下をご覧くださいhttp://resocia.jp/column/5255/

人気記事トップ10

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