PHPフィルター(2)

WBOY
リリース: 2016-06-23 14:35:59
オリジナル
1000 人が閲覧しました

ブール検証 FILTER_VALIDATE_BOOLEAN

1 <?php2 3 /*** test for a boolean value ***/4 echo filter_var("true", FILTER_VALIDATE_BOOLEAN);5 //16 ?> 
ログイン後にコピー

フィルターが有効なブール値を見つけたので、上記のコードは 1 を出力します。以下に true を返すことができる他の値を示します。
1
"1"
"yes"
" true"
"on"
TRUE
次の値はfalseを返します
0
"0"
"no"
"false"
"off"
""
NULL
FALSE
は次の使用法もサポートしています

1 <?php2 3 /*** a simple array ***/4 $array = array(1,2,3,4,5);5 6 /*** test for a boolean value ***/7 echo filter_var(in_array(3, $array), FILTER_VALIDATE_BOOLEAN) ? "TRUE" : "FALSE";8 //true9 ?>
ログイン後にコピー

上記のコードでは、最初に in_array 関数が正常に実行されたと判断され、true が返されるため、最後のコードは true を出力します
配列を渡して、配列内の値のブール型を決定することもできます

 1 <?php 2  3 /*** a multi dimensional array ***/ 4 $array = array(0,1,2,3,4, array(0,1,2,3,4)); 5  6 /*** create the list of values ***/ 7 $values = filter_var($array, FILTER_VALIDATE_BOOLEAN, FILTER_REQUIRE_ARRAY); 8  9 /*** dump the values ***/10 var_dump($values);11 12 ?>
ログイン後にコピー

上記のコードの出力は次のとおりです。 (false)
[3] => bool(false)
[4]=> bool(false)
[5]=> array(5) {
[0]=> 1]=> bool(true)
[2]=> bool(false)
[4]=> bool(false)
}
}
浮動小数点verify FILTER_VALIDATE_FLOAT

 1 <?php 2  3 /*** an FLOAT value to check ***/ 4 $float = 22.42; 5  6 /*** validate with the FLOAT flag ***/ 7 if(filter_var($float, FILTER_VALIDATE_FLOAT) === false) 8 { 9     echo "$float is not valid!";10 }11 else12 {13     echo "$float is a valid floating point number";14 }15 ?> 
ログイン後にコピー


他の検証と同様に、浮動小数点検証も配列に対して実行できます。ブール値検証と同様に、flgs FILTER_REQUIRE_ARRAY を指定します。

/*** 値の配列 ***/

$array = array(1.2,"1.7","", "-12345.678", "some text", "abcd4.2efgh", array()) ;

/*** 配列を検証します ***/

$validation_array = filter_var($array, FILTER_VALIDATE_FLOAT, FILTER_REQUIRE_ARRAY);

/*** 検証されたデータの配列をダンプします ***/

var_dump($validation_array);

?>

上記コード出力は次のとおりです
array(7) {

[0]=> float(1.2)

[2]=> bool(false)
[3]=> ; float (-23234.123)

[4]=> bool(false)

[5]=> bool(false)
[6]=> array(0) { }
}
浮動小数点フィルターは、数値間の区切り文字を指定

 1 <?php 2  3 /*** an array of floats with seperators ***/ 4 $floats = array( 5 "1,234" => ",", 6 "1.234" => "..", 7 "1.2e3" => "," 8 ); 9 10 /*** validate the floats against the user defined decimal seperators ***/11 foreach ($floats as $float => $dec_sep)12 {13     $out = filter_var($float, FILTER_VALIDATE_FLOAT,     array("options"=>array("decimal" => $dec_sep)));14     /*** dump the results ***/15     var_dump($out);16 }17 ?>
ログイン後にコピー




上記のコードでは、$floats 関数の最初の要素の値が ',' なので、1,234 の値を判定するときに区切り文字が ',' として指定されているため、true を返します
上記のコードの完全な戻り値
float(1.234)

警告: filter_var() [function.filter-var]: /www/filter.php の 13 行目の小数点区切り文字は 1 文字である必要があります

bool(false)

bool(false)

URL の検証 FILTER_VALIDATE_URL

URL は不確実であるため、URL の検証は非常に困難な動作です。RFC 1738 を参照して、URL に関する情報を学びましょう。 。次に、すべての ipv4 および ipv6 URL、およびその他の URL を検証するクラスを作成できます。 FILTER_VALIDATE_URL を使用して URL を検証することもできます。

 1 <?php 2  3 /*** a rfc compliant web address ***/ 4 $url = "http://www.phpro.org"; 5  6 /*** try to validate the URL ***/ 7 if(filter_var($url, FILTER_VALIDATE_URL) === FALSE) 8 { 9     /*** if there is no match ***/10     echo "Sorry, $url is not valid!";11 }12 else13 {14     /*** if we match the pattern ***/15     echo "The URL, $url is valid!<br />";16 }17 ?>
ログイン後にコピー



上の例では、単純な if ステートメントを使用して、指定された URL が正当かどうかを判断していますが、すべての URL がこの形式であるわけではありません。 URL が IP アドレスである場合や、URL で複数のパラメータが渡される場合があります。 URL の検証に役立ついくつかのフラグが以下に提供されています

FILTER_FLAG_SCHEME_REQUIRED - URL が RFC 準拠の URL である必要があります。 (例: http://example)
FILTER_FLAG_HOST_REQUIRED - URL にホスト名を含める必要があります (http://www.example.com)

FILTER_FLAG_PATH_REQUIRED - URL にホスト名の後にパスが必要です (例:例: com/example1/)

FILTER_FLAG_QUERY_REQUIRED - URL にクエリ文字列が必要です (例: "eg.php?age=37")

 1 <?php 2  3 /*** a non rfc compliant URL ***/ 4 $url = "index.php"; 5  6 /*** try to validate the URL ***/ 7 if(filter_var($url, FILTER_VALIDATE_URL, FILTER_FLAG_SCHEME_REQUIRED) === FALSE) 8 { 9     /*** if there is no match ***/10    echo "Sorry, $url is not valid!";11 }12 else13 {14     /*** if the URL is valid ***/15     echo "The URL, $url is valid!";16 }17 ?>
ログイン後にコピー



上記のコードは渡されないことがわかりますverify

IP フィルター FILTER_VALIDATE_IP

FILTER_VALIDATE_IP フィルターは、値を検証用の IP として受け取ります。

名前: "validate_ip"

ID 番号: 275

可能なフラグ:

FILTER_FLAG_IPV4 - 値が有効な IPv4 IP である必要があります (例: 255.255.255.255)

FILTER_FLAG_IPV6 - 値が有効な IPv6 IP である必要があります (例: 2) 001:0db8: 85a3 :08d3:1319:8a2e:0370:7334)

FILTER_FLAG_NO_PRIV_RANGE - 必要な値は RFC で指定されたプライベート IP (192.168.0.1 など) です。

FILTER_FLAG_NO_RES_RANGE - 必要な値は予約された IP 範囲内にありません。このフラグは、IPV4 および IPV6 の値を受け入れます。

メール フィルター FILTER_VALIDATE_EMAIL
FILTER_VALIDATE_EMAIL フィルターは、メール アドレスとしての値を検証します。

 1 <?php 2 $email = "someone@exa mple.com"; 3  4 if(!filter_var($email, FILTER_VALIDATE_EMAIL)) 5  { 6      echo "E-mail is not valid"; 7  } 8 else 9  {10      echo "E-mail is valid";11  }12 ?>
ログイン後にコピー


カスタム フィルター FILTER_CALLBACK

FILTER_CALLBACK フィルターは、ユーザー定義関数を使用して値をフィルターします。

このフィルターにより、データのフィルター処理を完全に制御できます。
指定された関数は、「options」という名前の連想配列に格納する必要があります。

れーい

输出

Peter_is_a_great_guy!
ログイン後にコピー


PHP技术交流群 170855791

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート