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 ユーザー定義関数を呼び出してデータをフィルタリングします