現在の位置: ホーム> 最新記事一覧> filter_var_arrayとfilter_input_arrayの違いは何ですか?どちらがあなたのプロジェクトに適していますか?

filter_var_arrayとfilter_input_arrayの違いは何ですか?どちらがあなたのプロジェクトに適していますか?

gitbox 2025-09-09

filter_var_arrayとfilter_input_arrayの違いは何ですか?どちらがあなたのプロジェクトに適していますか? ]

PHPでは、データフィルタリングは、アプリケーションのセキュリティを確保し、悪意のある攻撃を防ぐための重要なステップです。 filter_var_arrayfilter_input_arrayは、入力データのフィルタリングと検証に使用される2つの一般的に使用される関数ですが、詳細は異なります。この記事では、これら2つの機能を比較して、開発者が自分の違いを理解し、プロジェクトのニーズに応じて適切な機能を選択するのに役立ちます。

1。filter_var_array関数の概要

filter_var_arrayは、開発者が複数の変数を同時にフィルタリングできるようにするfilter_var関数の配列バージョンです。 2つのパラメーターを受け取ります。

  • 最初のパラメーターは、フィルタリングするデータを含む配列です。

  • 2番目のパラメーターは、フィルタリングルールを定義し、 filter_*定数を介して設定できる配列です。

例:

 <span><span><span class="hljs-variable">$input_data</span></span><span> = [
    </span><span><span class="hljs-string">'email'</span></span><span> =&gt; </span><span><span class="hljs-string">'[email protected]'</span></span><span>,
    </span><span><span class="hljs-string">'age'</span></span><span> =&gt; </span><span><span class="hljs-string">'25'</span></span><span>
];

</span><span><span class="hljs-variable">$filters</span></span><span> = [
    </span><span><span class="hljs-string">'email'</span></span><span> =&gt; FILTER_VALIDATE_EMAIL,
    </span><span><span class="hljs-string">'age'</span></span><span> =&gt; FILTER_VALIDATE_INT
];

</span><span><span class="hljs-variable">$filtered_data</span></span><span> = </span><span><span class="hljs-title function_ invoke__">filter_var_array</span></span><span>(</span><span><span class="hljs-variable">$input_data</span></span><span>, </span><span><span class="hljs-variable">$filters</span></span><span>);

</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$filtered_data</span></span><span>);
</span></span>

この例では、電子メールはFilter_Validate_Emailによって検証され、年齢は有効な整数であるかどうかを確認します。 filter_var_arrayフィルタリングされたデータを含む配列を返します。

2。filter_input_array関数の概要

filter_input_arrayfilter_var_arrayには同様の機能がありますが、主にPHPの入力ストリームとフィルターからデータを取得するために使用されます。この関数は通常、 $ _get$ _post$ _cookie 、またはフォームからの$ _requestから入力データを処理するために使用されます。また、2つのパラメーターも受信します。

  • 最初のパラメーターは、入力データのソース( input_getinput_postなど)を指定する定数です。

  • 2番目のパラメーターは、 filter_var_arrayと同様のフィルタリングルール配列です。

例:

 <span><span><span class="hljs-variable">$filters</span></span><span> = [
    </span><span><span class="hljs-string">'email'</span></span><span> =&gt; FILTER_VALIDATE_EMAIL,
    </span><span><span class="hljs-string">'age'</span></span><span> =&gt; FILTER_VALIDATE_INT
];

</span><span><span class="hljs-variable">$filtered_data</span></span><span> = </span><span><span class="hljs-title function_ invoke__">filter_input_array</span></span><span>(INPUT_POST, </span><span><span class="hljs-variable">$filters</span></span><span>);

</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$filtered_data</span></span><span>);
</span></span>

この例では、 filter_input_arrayは$ _postからデータを取得し、対応するフィルタリングルールを適用します。

3。主な違い

入力データのさまざまなソース

filter_var_arrayは、任意の配列からのデータをフィルタリングするために使用されます。その入力データソースは、開発者によって完全に提供され、データベース、ファイル、セッション、または他のどこからでもデータにすることができます。

filter_input_arrayは、主にPHPの内蔵入力ストリーム( $ _get$ _postなど)からデータを取得するために使用されます。通常、フォーム処理、URLパラメーター、Cookieなどの要求データをフィルタリングするために使用されます。

さまざまなパラメーターが渡されます

filter_var_arrayはアレイを入力として直接渡しますが、 filter_input_arrayは$ _post$ _getなどのphpのグローバル入力配列に依存します。

柔軟性とアプリケーションシナリオ

filter_var_arrayは、データがどこから来ても、フィルタリングする必要がある配列データに適しています。 filter_input_arrayは、ユーザー要求、特にフォーム送信またはURLパラメーターからのデータの処理に適しています。

4.あなたのプロジェクトにより適しているのはどれですか?

  • 外部リクエスト(フォーム送信、URLパラメーターなど)からデータを処理し、それらをフィルタリングおよび検証する必要がある場合、 Filter_input_Arrayはより適切な選択肢です。入力ストリームでデータを直接処理し、PHPグローバル変数( $ _GET$ _POSTなど)でより便利に使用できます。

  • 処理しているデータがPHPの入力ストリームから直接送信されるのではなく、他のソース(データベース、ファイル、セッションデータなど)からのものである場合、 Filter_var_arrayはより柔軟で、ニーズに応じて配列をフィルタリングできます。

5。概要

filter_var_arrayfilter_input_arrayはどちらも非常に便利なツールです。それらの主な違いは、入力データのソースとアプリケーションシナリオにあります。選択する機能は、ニーズに依存します。

  • フォーム、URLパラメーター、Cookieなどの入力ストリームデータを処理する必要がある場合は、 filter_input_arrayを選択します。

  • 他のソースからデータをフィルタリングする必要がある場合は、 filter_var_arrayを選択します。

開発プロセス中、さまざまな状況に応じて適切な関数を選択すると、コードのセキュリティと保守性を効果的に改善できます。