PHP 高度なフィルター
filterを使用して、数値が範囲内にあるかどうかを検出します
次の例では、filter_var()関数を使用して、INT型変数が1から200の範囲内にあるかどうかを検出します:
<?php header("Content-type:text/html;charset=utf-8"); $int = 122; $min = 1; $max = 200; if (filter_var($int, FILTER_VALIDATE_INT, array("options" => array("min_range"=>$min, "max_range"=>$max))) === false) { echo("变量值不在合法范围内"); } else { echo("变量值在合法范围内"); } ?>
プログラムの動作結果:
変数値が正当な範囲内です
IPv6アドレスを検出
★ FILTER_VALIDATE_IP フィルターは値を IP として検証します。次の例では、filter_var()関数を使用して$ IP変数がIPv6アドレスであるかどうかを検出します。 08d3: 1319:8a2e:0370:7334 は IPv6 アドレスです
検出 URL - QUERY_STRING (クエリ文字列) を含む必要があります
QUERY_STRING文字通り、一般的な URL Web アドレス xxx などのクエリ文字列を意味します。 asp?pn=123456 ? 数字に続くのはクエリ文字列です
次の例では、filter_var() 関数を使用して、$url にクエリ文字列が含まれているかどうかを検出します。 baidu.com は合法的な URL ではありません上記の例では、URL URL に QUERY_STRING が含まれていないため、実行結果は否定的な答えになります
127 を超える ASCII 値を持つ文字を削除してください
★
FILTER_SANITIZE_STRING
フィルターは、不要な文字を削除またはエンコードします。次の例では、filter_var() 関数を使用して、文字列内の 127 より大きい ASCII 値を持つ文字を削除します。また、HTML タグも削除できます。
<?php header("Content-type:text/html;charset=utf-8"); $ip = "2001:0db8:85a3:08d3:1319:8a2e:0370:7334"; if (!filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) === false) { echo("$ip 是一个 IPv6 地址"); } else { echo("$ip 不是一个 IPv6 地址"); } ?>プログラムの実行結果:
Hello World!
PHP フィルター リファレンス マニュアル
このサイトの PHP フィルター リファレンス マニュアルにアクセスして、フィルターの特定のアプリケーションを表示することもできます。
リファレンスマニュアルにはフィルターパラメーターの簡単な説明と使用例が含まれています。