ホームページ  >  記事  >  バックエンド開発  >  PHPフィルターとは何ですか?どのような種類のフィルターがありますか?

PHPフィルターとは何ですか?どのような種類のフィルターがありますか?

慕斯
慕斯オリジナル
2021-05-28 16:32:482362ブラウズ

前回の記事では、「PHP を使用して電子メール プログラム ファイルを記述するにはどうすればよいですか?」について紹介しました。 》ということで、この記事では引き続きPHPフィルターとは何かについてご紹介していきます。どのような種類のフィルターがありますか?一緒に行こう!

PHPフィルターとは何ですか?どのような種類のフィルターがありますか?

#PHP フィルターとは何ですか?

  • #PHP フィルターは、安全でないソースからのデータを検証およびフィルターするために使用されます。

  • ユーザー入力またはカスタム データのテスト、検証、フィルタリングは、Web アプリケーションの重要な部分です。

  • # PHP のフィルター拡張機能は、データのフィルター処理を簡単かつ迅速に行うように設計されています。

  • #PHP フィルターは、ユーザー入力などの安全でないソースからのデータを検証およびフィルターするために使用されます。

フィルターを使用する理由

ほぼすべての Web アプリケーションは外部入力に依存しています。通常、このデータはユーザーまたは他のアプリケーション (Web サービスなど) から取得されます。フィルターを使用すると、アプリケーションが正しい入力タイプを取得できるようになります。

外部データは常にフィルタリングする必要があります。

入力フィルタリングは、アプリケーション セキュリティの最も重要なトピックの 1 つです。

#外部データとは何ですか?

フォームからの入力データ


  • Cookie


  • Web サービス データ


  • #サーバー変数

  • データベース クエリの結果
  • 関数とフィルター
  • 変数をフィルターするには、次のフィルター関数のいずれかを使用します。

    filter_var() - 指定したフィルターでフィルターし、単一のフィルターをフィルターします。 variable

  • filter_var_array() - 同じまたは異なるフィルターで複数の変数をフィルター処理します

  • filter_input - 入力変数を取得します

  • filter_input_array - 複数の入力変数を取得し、同じまたは異なるフィルターを通してそれらを実行します。次の例では、filter_var() 関数を使用して整数を検証します。
  • <?php
    $int = 123;
    if(!filter_var($int, FILTER_VALIDATE_INT))
    {
    echo("不是一个合法的整数");
    }
    else
    {
    echo("是个合法的整数");
    }
    ?>

    コードの実行結果は次のとおりです。

検証とサニタイズ

フィルターには 2 つのタイプがあります: PHPフィルターとは何ですか?どのような種類のフィルターがありますか?

検証フィルター:

ユーザー入力の検証に使用されます


#厳密な形式ルール (URL や電子メールの検証など)

  • 成功または FALSE の場合は、予期されるタイプを返します。失敗した場合

  • ##サニタイズフィルター:

  • 文字列内の指定された文字を許可または禁止するために使用されます

#データ形式ルールなし

  • 常に文字列を返します

  • # オプションとフラグ オプションとフラグは、指定したフィルターに追加のフィルター オプションを追加するために使用されます。

  • フィルターが異なると、オプションとフラグも異なります。


  • 次の例では、「min_range」および「max_range」オプションを指定した filter_var() を使用して整数を検証します。上記のコードと同様に、オプションは「options」と呼ばれる関連配列に入れる必要があります。フラグを使用する場合、フラグを配列にする必要はありません。

    整数は「300」であり、指定された範囲内にないため、上記のコードの出力は次のようになります。
  • コードの実行結果は次のとおりです。



複数の入力をフィルタリングする

フォームは通常、複数の入力フィールドで構成されます。 filter_var または filter_input 関数の繰り返し呼び出しを避けるために、filter_var_array または filter_input_array 関数を使用できます。

この例では、filter_input_array() 関数を使用して 3 つの GET 変数をフィルターします。受け取った GET 変数は名前、年齢、電子メール アドレスです:

<?php
$var=300;
$int_options = array(
"options"=>array
(
"min_range"=>0,
"max_range"=>256
)
);
if(!filter_var($var, FILTER_VALIDATE_INT, $int_options))
{
echo("不是一个合法的整数");
}
else
{
echo("是个合法的整数");
}
?>

PHPフィルターとは何ですか?どのような種類のフィルターがありますか?結果は次のとおりです:


例の説明:


上記の例には、「GET」メソッドを通じて送信される 3 つの入力変数 (名前、年齢、電子メール) があります。

入力変数の名前と指定された入力変数のフィルターを含む配列を設定します。

filter_input_array() 関数を呼び出します。パラメーターには GET 入力変数と配列が含まれます。 set PHPフィルターとは何ですか?どのような種類のフィルターがありますか?$result 変数の「age」変数と「email」変数に不正な入力がないか確認します。 (不正な入力がある場合、filter_input_array() 関数の使用後、入力変数は FALSE になります。)

filter_input_array() 関数の 2 番目の引数には、配列または単一の ID を指定できます。フィルター。

このパラメーターが単一フィルターの ID である場合、指定されたフィルターは入力配列内のすべての値をフィルター処理します。

パラメータが配列の場合、配列は次の規則に従う必要があります:

入力変数が配列のキーである連想配列である必要があります(たとえば、「年齢」入力変数)

この配列の値は、フィルターの ID、またはフィルター、フラグ、オプションを指定する配列である必要があります

推奨される学習: 「PHP ビデオ チュートリアル

以上がPHPフィルターとは何ですか?どのような種類のフィルターがありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。