PHP組み込みフィルター FILTERの使用例_PHPチュートリアル

WBOY
リリース: 2016-07-13 10:26:04
オリジナル
693 人が閲覧しました

この章では、あまり一般的には使用されていませんが、強力な PHP 機能であるフィルターについて説明します。この拡張機能は検証とサニタイズに使用できます

データ ソースに不明なデータや不確かなデータが含まれている場合に非常に役立ちます。最も一般的には、HTML フォームから顧客が送信したデータを処理するために使用されます。
この拡張機能には、検証とサニタイズという 2 つの主要なフィルター タイプが含まれています

検証は主に、データが特定の条件を満たしているかどうかを確認するために使用されます。たとえば、FILTER_VALIDATE_EMAIL が渡されると、電子メール アドレスが有効かどうかがチェックされ、仕様を満たしていないことが判明した場合、エラー修正は実行されません。

サニタイズはデータを処理し、仕様に準拠していない文字を変換または削除します。たとえば、FILTER_SANITIZE_EMAIL が渡されると、電子メール アドレス内の仕様に準拠していない文字は処理されますが、削除はされません。メールアドレスが有効かどうかを確認してください

詳細は http://in.php.net/manual/en/book.filter.php でご覧いただけます

ヒント: FILTER は PHP 5.2 バージョンで追加されました

検証フィルターの紹介です


コードをコピー コードは次のとおりです:
FILTER_VALIDATE_BOOLEAN: 値をブール型オプションとして検証し、「1」、「true」、「on」、「yes」の場合は TRUE を返し、残りの場合は FALSE を返します
FILTER_VALIDATE_EMAIL: 値をメールアドレスとして検証します
FILTER_VALIDATE_FLOAT: 値を浮動小数点数として検証します
FILTER_VALIDATE_INT: 値を整数として検証します。範囲を選択できます
FILTER_VALIDATE_IP: 値を IP として検証します
FILTER_VALIDATE_REGEXP: Perl 互換の正規表現に基づいて値を検証します
FILTER_VALIDATE_URL: 値を URL として検証します
例:

確認用メールアドレス:

コードをコピーします コードは次のとおりです:
$email_a = 'onedayin2013@shawn.com';
$email_b = '無効な@メール';

if (filter_var($email_a, FILTER_VALIDATE_EMAIL)) {
echo "この ($email_a) メール アドレスは有効です。";
} その他 {
echo "この ($email_a) メール アドレスは無効です。";
}

if (filter_var($email_b, FILTER_VALIDATE_EMAIL)) {
echo "この ($email_b) メール アドレスは有効です。";
} その他 {
echo "この ($email_b) メール アドレスは無効です。";
}

//次の内容を出力します:
この (onedayin2013@shawn.com) メール アドレスは有効です。
この (invalid@email) メール アドレスは無効です。
?>
IPアドレスを確認してください:

コードをコピーします コードは次のとおりです:
$ip_a = '127.0.0.1';
$ip_b = '52.69';

if (filter_var($ip_a, FILTER_VALIDATE_IP)) {
echo "この ($ip_a) IP アドレスは有効です。";
}その他{
echo "この ($ip_a) IP アドレスは無効です。";
}
if (filter_var($ip_b, FILTER_VALIDATE_IP)) {
echo "この ($ip_b) IP アドレスは有効です。";
}その他{
echo "この ($ip_b) IP アドレスは無効です。";
}

//次の内容を出力します:
この (127.0.0.1) IP アドレスは有効です。
この (52.69) IP アドレスは無効です。
?>

除菌フィルター


コードをコピーします コードは次のとおりです:
FILTER_SANITIZE_EMAIL: 文字、数字、!#$%&'*+-/=?^_`{|}~@.[].
を除くすべての文字を削除します。 FILTER_SANITIZE_ENCODED: URL エンコードに必要のない文字を削除します。urlencode() 関数とよく似ています
FILTER_SANITIZE_MAGIC_QUOTES: 指定した定義済み文字、一重引用符 (')、二重引用符 (")、バックスラッシュ ()、および NULL の前にバックスラッシュを追加します
FILTER_SANITIZE_NUMBER_FLOAT: 数字、+-、およびオプションの (.,) を除くすべての文字を削除します
FILTER_SANITIZE_NUMBER_INT: 数字と +-
を除くすべての文字を削除します FILTER_SANITIZE_SPECIAL_CHARS: 「<>&」および 32 未満の ASCII 値を持つ文字をエスケープするために使用されます
FILTER_SANITIZE_STRING: アプリケーションに有害な可能性のあるデータを削除します。タグを削除し、不要な文字を削除またはエンコードするために使用されます
FILTER_SANITIZE_STRIPPED: 不要な文字を削除またはエンコードします。FILTER_SANITIZE_STRING
のエイリアスです。 FILTER_SANITIZE_URL: 文字、数字、$-_.+!*'(),{}|\^~[]`<>#%";/?:@&=.
を除くすべての文字を削除します FILTER_UNSAFE_RAW: 特殊文字のフィルタリング、削除、エンコードは行われません


例:

コードをコピーします コードは次のとおりです:
$invalid_email = "(破損した@foo dot com)";

if (!filter_var($invalid_email, FILTER_VALIDATE_EMAIL)) {
$sanitized_email = filter_var($invalid_email, FILTER_SANITIZE_EMAIL);
echo "この ($invalid_email) メール アドレスは無効です。";
echo "サニタイズされたメールは $sanitized_email"; }

//次の内容を出力します:
この ((corrupted@foo dot com)) メール アドレスは無効です。
サニタイズされたメールは次のとおりです:corrupted@foo.com
?>

GET 変数と POST 変数をフィルタリングする


コードをコピーします コードは次のとおりです:
filter_input(input_type, variable, filter, options)

//関数はスクリプトの外部から入力を取得し、ユーザー入力などの安全でないソースからの変数を検証するために使用されます
//入力は次のソースから取得できます
INPUT_GET INPUT_POST INPUT_COOKIE INPUT_ENV INPUT_SERVER

コードをコピーします コードは次のとおりです:
input_type は入力タイプを指定します。上記の可能なタイプを参照してください
変数はフィルタリングする変数を指定します
フィルタ オプション。使用するフィルターの ID を指定します。デフォルトは FILTER_SANITIZE_STRING です。

例:


コードをコピーします コードは次のとおりです:
$search_html = filter_input(INPUT_GET, '検索', FILTER_SANITIZE_SPECIAL_CHARS);
$search_url = filter_input(INPUT_GET, '検索', FILTER_SANITIZE_ENCODED);

echo "$search_html を検索しました。";
echo "もう一度検索してください。";
?>

http://www.bkjia.com/PHPjc/824815.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/824815.html技術記事この章では、あまり一般的ではありませんが、強力な PHP 機能である FILTERS について説明します。この拡張機能は、データ ソースに未知のデータが含まれている場合の検証とサニタイズに使用できます。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!