logo

便利なFilter関数を使いこなそう その4

ヒューマンリソシア株式会社はコラム「便利な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/
本プレスリリースは発表元企業よりご投稿いただいた情報を掲載しております。
お問い合わせにつきましては発表元企業までお願いいたします。