SunshinePHP Developer Conference 2015

フィルタフラグ

フィルタフラグの一覧
ID 使える場所 説明
FILTER_FLAG_STRIP_LOW FILTER_SANITIZE_ENCODED, FILTER_SANITIZE_SPECIAL_CHARS, FILTER_SANITIZE_STRING, FILTER_UNSAFE_RAW コードが 32 未満の文字を除去します。
FILTER_FLAG_STRIP_HIGH FILTER_SANITIZE_ENCODED, FILTER_SANITIZE_SPECIAL_CHARS, FILTER_SANITIZE_STRING, FILTER_UNSAFE_RAW コードが 127 より大きい文字を除去します。
FILTER_FLAG_ALLOW_FRACTION FILTER_SANITIZE_NUMBER_FLOAT ピリオド (.) を数値の小数点として許可します。
FILTER_FLAG_ALLOW_THOUSAND FILTER_SANITIZE_NUMBER_FLOAT, FILTER_VALIDATE_FLOAT カンマ (,) を数値の桁区切り文字として許可します。
FILTER_FLAG_ALLOW_SCIENTIFIC FILTER_SANITIZE_NUMBER_FLOAT e あるいは E を、 科学記法の数値として許可します。
FILTER_FLAG_NO_ENCODE_QUOTES FILTER_SANITIZE_STRING このフラグを指定すると、シングルクォート (') およびダブルクォート (") をエンコードしません。
FILTER_FLAG_ENCODE_LOW FILTER_SANITIZE_ENCODED, FILTER_SANITIZE_STRING, FILTER_SANITIZE_RAW コードが 32 未満のすべての文字をエンコードします。
FILTER_FLAG_ENCODE_HIGH FILTER_SANITIZE_ENCODED, FILTER_SANITIZE_SPECIAL_CHARS, FILTER_SANITIZE_STRING, FILTER_SANITIZE_RAW コードが 127 より大きいすべての文字をエンコードします。
FILTER_FLAG_ENCODE_AMP FILTER_SANITIZE_STRING, FILTER_SANITIZE_RAW アンパサンド (&) をエンコードします。
FILTER_NULL_ON_FAILURE FILTER_VALIDATE_BOOLEAN boolean 値として認識できない値の場合に NULL を返します。
FILTER_FLAG_ALLOW_OCTAL FILTER_VALIDATE_INT ゼロ (0) で始まる入力を八進数とみなします。 ゼロの後には 0-7 しか続けることができません。
FILTER_FLAG_ALLOW_HEX FILTER_VALIDATE_INT 0x あるいは 0X で始まる入力を十六進数とみなします。 後に続けられる文字は a-fA-F0-9 だけです。
FILTER_FLAG_IPV4 FILTER_VALIDATE_IP IPv4 形式の IP アドレスを許可します。
FILTER_FLAG_IPV6 FILTER_VALIDATE_IP IPv6 形式の IP アドレスを許可します。
FILTER_FLAG_NO_PRIV_RANGE FILTER_VALIDATE_IP

IPv4 プライベート領域 10.0.0.0/8, 172.16.0.0/12 および 192.168.0.0/16 を許可しません。

FD あるいは FC ではじまる IPv6 アドレスを許可しません。

FILTER_FLAG_NO_RES_RANGE FILTER_VALIDATE_IP 予約済みの IPv4 範囲 0.0.0.0/8, 169.254.0.0/16, 192.0.2.0/24 および 224.0.0.0/4. を許可しません。 このフラグは IPv6 アドレスには適用されません。
FILTER_FLAG_PATH_REQUIRED FILTER_VALIDATE_URL URL で、パス部分を必須とします。
FILTER_FLAG_QUERY_REQUIRED FILTER_VALIDATE_URL URL で、クエリ文字列を必須とします。

add a note add a note

User Contributed Notes 2 notes

up
3
php dot net at ewood dot users dot cementhorizon dot com
4 years ago
In order to filter on loopback addresses try this :

<?php
function FILTER_FLAG_NO_LOOPBACK_RANGE($value) {
   
// Fails validation for the following loopback IPv4 range: 127.0.0.0/8
    // This flag does not apply to IPv6 addresses
   
return filter_var($value, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) ? $value :
        (((
ip2long($value) & 0xff000000) == 0x7f000000) ? FALSE : $value);
}

$var = filter_var('127.0.0.1', FILTER_CALLBACK, array('options' => 'FILTER_FLAG_NO_LOOPBACK_RANGE'));
// Returns FALSE

$var = filter_var('74.125.19.103', FILTER_CALLBACK, array('options' => 'FILTER_FLAG_NO_LOOPBACK_RANGE'));
// Returns '74.125.19.103'

// To filter Private IP ranges and Loopback ranges
$var = filter_var('127.0.0.1', FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE)
    &&
filter_var('127.0.0.1', FILTER_CALLBACK, array('options' => 'FILTER_FLAG_NO_LOOPBACK_RANGE'));
// Returns FALSE
?>

(If someone wants to write in handling for the IPv6 loopback interface at "::1" go for it.)

-Gene Wood
up
1
bohwaz
2 years ago
Please note that FILTER_FLAG_HOST_REQUIRED and FILTER_FLAG_SCHEME_REQUIRED have disappeared. They were previously mentioned in the constants page but it seems that host and scheme are now required by default for the validate_url filter.
To Top