PHP フィルター関数 リファレンス
PHP フィルターについて
PHP フィルターは、ユーザー入力などの安全でないソースからのデータを検証およびフィルタリングするために使用されます。
インストール
PHP 5.2.0 以降、フィルター関数はデフォルトで有効になっています。これらの関数を使用するためのインストールは必要ありません。
ランタイム設定
これらの関数の動作は、php.ini の設定によって影響を受けます:
名前 | 説明 | デフォルト | 変更可能 |
---|---|---|---|
filter.default | $_GET、$_POST、$_COOKIE、$_REQUEST、$_SERVER のすべてのデータをこのフィルターでフィルタリングします。デフォルトで使用するフィルターの名前を受け入れます。フィルターのリストについては、フィルターのリストを参照してください。 | “unsafe_raw” | PHP_INI_PERDIR |
filter.default_flags | デフォルトのフィルターが設定されている場合に適用するデフォルトのフラグ。後方互換性のために、デフォルトでは FILTER_FLAG_NO_ENCODE_QUOTES に設定されています。 | NULL | PHP_INI_PERDIR |
PHP フィルター関数
関数 | 説明 |
---|---|
filter_has_var() | 指定された入力タイプの変数が存在するかどうかを確認します |
filter_id() | 指定されたフィルター名のフィルター ID を返します |
filter_input() | 外部変数(たとえばフォーム入力)を取得し、オプションでフィルタリングします |
filter_input_array() | 外部変数(たとえばフォーム入力)を取得し、オプションでフィルタリングします |
filter_list() | サポートされているすべてのフィルター名のリストを返します |
filter_var() | 指定されたフィルターで変数をフィルタリングします |
filter_var_array() | 複数の変数を取得し、それらをフィルタリングします |
PHP 事前定義フィルター定数
定数 | 説明 |
---|---|
INPUT_POST | POST 変数 |
INPUT_GET | GET 変数 |
INPUT_COOKIE | COOKIE 変数 |
INPUT_ENV | ENV 変数 |
INPUT_SERVER | SERVER 変数 |
FILTER_DEFAULT | 特に何もせず、オプションで特殊文字を削除/エンコードします。FILTER_UNSAFE_RAW と同等です。 |
FILTER_FLAG_NONE | フラグは許可しません |
FILTER_FLAG_ALLOW_OCTAL | 0 で始まる入力のみを 8 進数として許可します。これにより、後続の数字が 0~7 になることが許可されます |
FILTER_FLAG_ALLOW_HEX | 0x/0X で始まる入力のみを 16 進数として許可します。後続の文字が a-fA-F0-9 になることが許可されます |
FILTER_FLAG_STRIP_LOW | ASCII 値が 32 より低い文字を削除します |
FILTER_FLAG_STRIP_HIGH | ASCII 値が 127 より大きい文字を削除します |
FILTER_FLAG_ENCODE_LOW | ASCII 値が 32 より低い文字をエンコードします |
FILTER_FLAG_ENCODE_HIGH | ASCII 値が 127 より大きい文字をエンコードします |
FILTER_FLAG_ENCODE_AMP | & をエンコードします |
FILTER_FLAG_NO_ENCODE_QUOTES | ‘ および ” をエンコードしません |
FILTER_FLAG_EMPTY_STRING_NULL | 使用されていません |
FILTER_FLAG_ALLOW_FRACTION | 数値で小数点(.)を許可します |
FILTER_FLAG_ALLOW_THOUSAND | 数値でカンマ(,)を千の区切り文字として許可します |
FILTER_FLAG_ALLOW_SCIENTIFIC | 数値で e または E を科学的表記法の一部として許可します |
FILTER_FLAG_PATH_REQUIRED | URL はパス部分を含んでいる必要があります |
FILTER_FLAG_QUERY_REQUIRED | URL はクエリ文字列を含んでいる必要があります |
FILTER_FLAG_IPV4 | IP アドレスを IPv4 形式で許可します |
FILTER_FLAG_IPV6 | IP アドレスを IPv6 形式で許可します |
FILTER_FLAG_NO_RES_RANGE | 予約済みの 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 | プライベート IPv4 範囲:10.0.0.0/8、172.16.0.0/12、192.168.0.0/16 および、FD または FC で始まる IPv6 アドレスに対して検証に失敗します |
FILTER_FLAG_EMAIL_UNICODE | メールアドレスのローカル部分に Unicode 文字を含めることを許可します |
FILTER_REQUIRE_SCALAR | 値はスカラーである必要があります |
FILTER_REQUIRE_ARRAY | 値は配列である必要があります |
FILTER_FORCE_ARRAY | スカラー値を、そのスカラー値を唯一の要素として配列として扱います |
FILTER_NULL_ON_FAILURE | 認識されないブール値の失敗時に NULL を返します |
FILTER_VALIDATE_BOOLEAN | ブール値を検証します |
FILTER_VALIDATE_EMAIL | 値を有効なメールアドレスとして検証します |
FILTER_VALIDATE_FLOAT | 値を浮動小数点数として検証します |
FILTER_VALIDATE_INT | 値を整数として検証します |
FILTER_VALIDATE_IP | 値を IP アドレスとして検証します |
FILTER_VALIDATE_MAC | 値を MAC アドレスとして検証します |
FILTER_VALIDATE_REGEXP | 値を正規表現で検証します |
FILTER_VALIDATE_URL | 値を URL として検証します |
FILTER_SANITIZE_ADD_SLASHES | FILTER_SANITIZE_MAGIC_QUOTES の代替として追加されました |
FILTER_SANITIZE_EMAIL | メールアドレスからすべての不正な文字を削除します |
FILTER_SANITIZE_ENCODED | 特殊文字を削除/エンコードします |
FILTER_SANITIZE_MAGIC_QUOTES | addslashes() を適用します。PHP 7.3.0 で非推奨となり、PHP 8.0.0 で削除されました |
FILTER_SANITIZE_NUMBER_FLOAT | 数字、+- 記号、オプションで .,eE を除去します |
FILTER_SANITIZE_NUMBER_INT | + – 記号以外のすべての文字を削除します |
FILTER_SANITIZE_SPECIAL_CHARS | 特殊文字を削除します |
FILTER_SANITIZE_STRING | 文字列からタグ/特殊文字を削除します。PHP 8.1.0 で非推奨となりました |
FILTER_SANITIZE_STRIPPED | FILTER_SANITIZE_STRING のエイリアス。PHP 8.1.0 で非推奨となりました |
FILTER_SANITIZE_URL | URL からすべての不正な文字を削除します |
FILTER_UNSAFE_RAW | 特に何もせず、オプションで特殊文字を削除/エンコードします |
FILTER_CALLBACK | ユーザー定義関数を呼び出してデータをフィルタリングします |