便利な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/column/5255/

この記事が役に立ったらシェア!
メルマガの登録はこちら Web担当者に役立つ情報をサクッとゲット!

人気記事トップ10(過去7日間)

今日の用語

PV
アクセス解析指標の 1 つ。Web サイトの特定のページが表示された回数を示す指 ...→用語集へ

インフォメーション

RSSフィード


Web担を応援して支えてくださっている企業さま [各サービス/製品の紹介はこちらから]