Note: FILTER_NULL_ON_FAILURE, FILTER_REQUIRE_SCALAR, FILTER_REQUIRE_ARRAY and FILTER_FORCE_ARRAY dont have prefix "FILTER_FLAG_" but they are FLAGS!以下の定数が定義されています。 この関数の拡張モジュールが PHP 組み込みでコンパイルされているか、 実行時に動的にロードされている場合のみ使用可能です。
以下の定数は、 filter_input() と filter_input_array() で使います。
INPUT_POST
    (int)
   INPUT_GET
    (int)
   INPUT_ENV
    (int)
   INPUT_SERVER
    (int)
   INPUT_SESSION
     (int)
   INPUT_REQUEST
     (int)
   FILTER_FLAG_NONE
    (int)
   FILTER_REQUIRE_SCALAR
    (int)
   FILTER_REQUIRE_ARRAY
    (int)
   FILTER_FORCE_ARRAY
    (int)
   FILTER_NULL_ON_FAILURE
    (int)
   false ではなく null を返します。
    
    
     任意の検証フィルタ
     FILTER_VALIDATE_*
     と一緒に使うと便利です。
    
   FILTER_FLAG_STRIP_LOW
    (int)
   FILTER_FLAG_STRIP_HIGH
    (int)
   FILTER_FLAG_STRIP_BACKTICK
    (int)
   `)を取り除きます。
    
   FILTER_FLAG_ENCODE_LOW
    (int)
   FILTER_FLAG_ENCODE_HIGH
    (int)
   FILTER_FLAG_ENCODE_AMP
    (int)
   & をエンコードします。
    
   FILTER_FLAG_NO_ENCODE_QUOTES
    (int)
   ' および " をエンコードしません。
    
   FILTER_FLAG_EMPTY_STRING_NULL
    (int)
   null に変換します。
    
   FILTER_VALIDATE_BOOL
    (int)
   "1",
     2進数、8進数、16進数記法の 1,
     1.0,
     "true", true,
     "on",
     "yes"
     に対して、true を返します。
    
    
     "0",
     2進数、8進数、16進数記法の 0,
     0.0,
     "false", false,
     "off",
     "no",
     "" に対して、false を返します。
    
    
     文字列の値は、大文字小文字の区別をせず比較されます。
     このフィルタが boolean 以外を返すかどうかは、
     FILTER_NULL_ON_FAILURE の値次第です。
     この値が設定されていると、null を返します。
     そうでない場合、false を返します。
    
    defaultFILTER_VALIDATE_BOOLEAN
    (int)
   FILTER_VALIDATE_BOOL。
     このエイリアスは、正規化された名前が実装される前の
     PHP 8.0.0 より前のバージョンで利用可能でした。
    
   FILTER_VALIDATE_INT
    (int)
   注意: 文字列の値は、検証する前に trim() を実行します。
defaultmin_rangemax_rangeFILTER_FLAG_ALLOW_OCTAL
       (int)
      0[0-7]+) を許可します。
       
      FILTER_FLAG_ALLOW_HEX
       (int)
      0x[0-9a-fA-F]+) を許可します。
       
      FILTER_VALIDATE_FLOAT
    (int)
   注意: 文字列の値は、検証する前に trim() を実行します。
defaultdecimalmin_rangemax_rangeFILTER_FLAG_ALLOW_THOUSAND
       (int)
      ,) を許可します。
        これは通常、1000ごとに桁を区切るのに使われます。
       
      FILTER_VALIDATE_REGEXP
    (int)
   regexp オプションによって、
     指定した正規表現にマッチするかを検証します。
    
    defaultregexpFILTER_VALIDATE_URL
    (int)
   defaultFILTER_FLAG_SCHEME_REQUIRED
       (int)
      
         PHP 7.3.0 以降は非推奨になり、
         PHP 8.0.0 で削除されました。
         FILTER_VALIDATE_URL
         フィルタが常にこの処理を含んでいたからです。
        
FILTER_FLAG_HOST_REQUIRED
       (int)
      
         PHP 7.3.0 以降は非推奨になり、
         PHP 8.0.0 で削除されました。
         FILTER_VALIDATE_URL
         フィルタが常にこの処理を含んでいたからです。
        
FILTER_FLAG_PATH_REQUIRED
       (int)
      FILTER_FLAG_QUERY_REQUIRED
       (int)
      
      正しい URL であっても、
      HTTP プロトコル (http://)
      を指定しない場合があります。
      よって、URL
      が期待通りのプロトコルを使っているかについては、
      追加の検証が必要です。
      たとえば ssh:// や mailto:
      の検証がその例です。
     
このフィルタは ASCII で構成された URL に対してのみ動作します。 つまり、Internationalized Domain Names (IDN) は常に拒否されるということです。
FILTER_VALIDATE_DOMAIN
    (int)
   defaultFILTER_FLAG_HOSTNAME
       (int)
      FILTER_VALIDATE_EMAIL
    (int)
   addr-spec syntax に照らして検証は行われます。
     しかし、コメントやホワイトスペースのフォールディング、
     ドットなしのドメイン名はサポートされていません。
     よってこれらは拒否されます。
    
    defaultFILTER_FLAG_EMAIL_UNICODE
       (int)
      メールアドレスの検証は複雑なので、 メールアドレスが正しく、かつ存在するかを確認する唯一の方法は、 そのアドレスにメールを送信することです。
FILTER_VALIDATE_IP
    (int)
   値が IPアドレス かどうかを検証します。
defaultFILTER_FLAG_IPV4
       (int)
      FILTER_FLAG_IPV6
       (int)
      FILTER_FLAG_NO_RES_RANGE
       (int)
      Reserved-By-Protocol
        としてマークされているアドレスが該当します。
       
       
        IPv4 については、以下の範囲が該当します:
        0.0.0.0/8, 169.254.0.0/16, 127.0.0.0/8, 240.0.0.0/4
       
        IPv6 については、以下の範囲が該当します:
        ::1/128, ::/128, ::FFFF:0:0/96, FE80::/10
       
FILTER_FLAG_NO_PRIV_RANGE
       (int)
      
        IPv4 については、以下の範囲が該当します:
        10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16.
       
FD や FC
        から始まるものが該当します。
       
      FILTER_FLAG_GLOBAL_RANGE
       (int)
      Global 属性が True
        になっているものが該当します。
        PHP 8.2.0 以降で利用可能です。
       
      FILTER_VALIDATE_MAC
    (int)
   defaultFILTER_UNSAFE_RAW
    (int)
   FILTER_FLAG_STRIP_*
     や FILTER_FLAG_ENCODE_*
     と一緒に使うと、特殊な文字を除去したり、エンコードしたりできます。
    
   FILTER_DEFAULT
    (int)
   FILTER_UNSAFE_RAW.
    
   FILTER_SANITIZE_STRING
    (int)
   FILTER_FLAG_STRIP_*,
     FILTER_FLAG_ENCODE_*
     と一緒に使うことで、特殊文字を除去したり、エンコードしたりもできます。
    
    
     クォートをエンコードする際の振る舞いは、
     フィルタフラグ FILTER_FLAG_NO_ENCODE_QUOTES
     を使うことで無効にできます。
    
    PHP 8.1.0 以降は、このフィルタは 推奨されません。 代わりに、htmlspecialchars() を使いましょう。
このフィルタがタグを除去する方法は、 strip_tags() と同じではありません。
FILTER_SANITIZE_STRIPPED
    (int)
   FILTER_SANITIZE_STRING.
    
    PHP 8.1.0 以降は、このフィルタは 推奨されません。 代わりに、htmlspecialchars() を使いましょう。
FILTER_SANITIZE_ENCODED
    (int)
   FILTER_FLAG_STRIP_*,
     FILTER_FLAG_ENCODE_*
     と一緒に使うことで、特殊文字をエンコードしたり除去することができます。
    
   FILTER_SANITIZE_SPECIAL_CHARS
    (int)
   
     以下のHTMLエンコードおよび、ASCII 値が32より小さい値をフィルタします。
     ', ", <, >, &
     FILTER_SANITIZE_FULL_SPECIAL_CHARS
     と異なり、
     FILTER_SANITIZE_SPECIAL_CHARS 
     フィルタは
     FILTER_FLAG_NO_ENCODE_QUOTES
     フラグを無視します。
    
FILTER_FLAG_STRIP_*
     と一緒に使うことで、特殊文字を除去できます。
     そして、
     FILTER_FLAG_ENCODE_HIGH
     と一緒に使うと、ASCII 値 127より大きな値をエンコードできます。
    
   FILTER_SANITIZE_FULL_SPECIAL_CHARS
    (int)
   ENT_QUOTES
     と一緒にコールした場合と同じです。
    
    
     クォートをエンコードする際の振る舞いは、
     フィルタフラグ
     FILTER_FLAG_NO_ENCODE_QUOTES
     を使うと無効にできます。
    
    htmlspecialchars() と同様に、 このフィルタは INI 設定 default_charset を認識します。 現在の文字セットに照らして不正なバイトシーケンスが検知された場合、 文字列全体が拒否され、空の文字列が返されます。
FILTER_SANITIZE_EMAIL
    (int)
   [a-zA-Z]),
     数字 ([0-9]),
     そして特殊文字
     !#$%&'*+-=?^_`{|}~@.[]
     以外の文字を全て除去します。
    
   FILTER_SANITIZE_URL
    (int)
   [a-zA-Z]),
     数字 ([0-9]),
     そして特殊文字
     $-_.+!*'(),{}|\\^~[]`<>#%";/?:@&=.
     以外の文字を全て除去します。
    
   FILTER_SANITIZE_NUMBER_INT
    (int)
   [0-9]), (+),
     (-) 以外の文字を全て除去し余す。
    
   FILTER_SANITIZE_NUMBER_FLOAT
    (int)
   [0-9]), (+),
     (-) 以外の文字を全て除去し余す。
    
    FILTER_FLAG_ALLOW_FRACTION
       (int)
      .) を許可します。
        これは通常、整数部分と少数部分の区切りを表します。
       
      FILTER_FLAG_ALLOW_THOUSAND
       (int)
      ,) を許可します。
        これは通常、1000ごとに桁を区切るのに使われます。
       
      FILTER_FLAG_ALLOW_SCIENTIFIC
       (int)
      e と E 文字を許可することで、
        科学的記法の数値を許可します。
       
      
      FILTER_FLAG_ALLOW_FRACTION フラグを使わない場合、
      10進数のセパレータは削除され、変更された値を受け取ることになります。
     
<?php
$number = '12.34';
var_dump(filter_var($number, FILTER_SANITIZE_NUMBER_FLOAT));
var_dump(filter_var($number, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION));
?>上の例の出力は以下となります。
string(4) "1234" string(5) "12.34"
FILTER_SANITIZE_ADD_SLASHES
    (int)
   FILTER_SANITIZE_MAGIC_QUOTES
    (int)
   FILTER_SANITIZE_ADD_SLASHES.
    
    PHP 7.3.0 以降は非推奨になり、 PHP 8.0.0 以降 削除 されています。
FILTER_CALLBACK
    (int)
   options パラメータの 'options'
     キー経由で callable を渡します。
    
    コールバックは、以下のシグネチャを持ちます:
value注意: コールバックから返される値が、 フィルタ関数の呼び出しで返される値になります。
例1 
      ログイン名を検証するために
      FILTER_CALLBACK
      を使う例
     
<?php
function validate_login(string $value): ?string
{
    if (strlen($value) >= 5 && ctype_alnum($value)) {
        return $value;
    }
    return null;
}
$login = "val1dL0gin";
$filtered_login = filter_var($login, FILTER_CALLBACK, ['options' => 'validate_login']);
var_dump($filtered_login);
$login = "f&ke login";
$filtered_login = filter_var($login, FILTER_CALLBACK, ['options' => 'validate_login']);
var_dump($filtered_login);
?>上の例の出力は以下となります。
string(10) "val1dL0gin" NULL
      このフィルタは、
      FILTER_NULL_ON_FAILURE
      のような他のフィルタフラグと一緒には使えません。
     
Note: FILTER_NULL_ON_FAILURE, FILTER_REQUIRE_SCALAR, FILTER_REQUIRE_ARRAY and FILTER_FORCE_ARRAY dont have prefix "FILTER_FLAG_" but they are FLAGS!