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

ヒューマンリソシア 2016/1/24(日) 9:31 tweet15このエントリーをはてなブックマークに追加 印刷用
※この記事は読者によって投稿されたユーザー投稿のため、編集部の見解や意向と異なる場合があります。また、編集部はこの内容について正確性を保証できません。

ヒューマンリソシア株式会社はコラム「便利な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/

tweet15このエントリーをはてなブックマークに追加
日本赤十字社 東日本大震災 義援金募集
Web担メルマガでラクラク情報ライフを
注目記事が毎週手もとに届いて見逃さない
要チェックのセミナー情報もゲットできる
編集長コラムを一足先に読める
―― 10万人が読んでいる、Web担必読メルマガです

今日の用語

GRP
テレビCMにおいて、広告出稿回数ごとの視聴率を足した数値。 放送局が定めた ... →用語集へ

連載/特集コーナーから探す

インフォメーション

Web担のメルマガを購読しませんか?
Web担の記事がコンパクトに毎週届くメールマガジン「Web担ウィークリー」は、10万人が読んでいる人気メルマガ。忙しいあなたの情報収集力をアップさせる強い味方で、お得な情報もいち早く入手できます。

Web担に広告を掲載しませんか?
購読者数10万人のメールマガジン広告をはじめとする広告サービスで、御社の認知向上やセミナー集客を強力にお手伝いいたします。

サイトマップ
RSSフィード


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

GOLD SPONSOR
さくらインターネット株式会社株式会社KDDI ウェブコミュニケーションズ株式会社日本レジストリサービスHP Softwareトランスコスモス株式会社株式会社ハイパーボックスDomain Keeperアドビ システムズ 株式会社
SPONSOR
株式会社キノトロープ株式会社アイレップ株式会社ニューズ・ツー・ユーシックス・アパート株式会社ウェブアンテナ株式会社サイバーエージェント富士通株式会社SitecoreYahoo!プロモーション広告Oracle