PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPのfilter_input_array()関数とは?使い方とパラメータを解説

PHPのfilter_input_array()関数は、外部から渡される複数の変数(GET・POSTなど)の名前を一括で取得し、それぞれにフィルタリング処理を適用できる便利な関数です。個別にfilter_input()を呼び出す必要がなく、フォーム入力などのバリデーションを効率的に行えます。

基本構文

filter_input_array(type, arraydefine, add_empty)

パラメータの詳細

  • type ― チェック対象となる入力元の種類を指定します。指定できるのは以下の5種類です。
    INPUT_GET、INPUT_POST、INPUT_COOKIE、INPUT_SERVER、INPUT_ENV

  • arraydefine ― フィルタの引数を定義した配列を指定します。この引数は省略可能です。

  • add_empty ― 値がtrueの場合、存在しないキーをNULLとして戻り値に追加します。省略した場合のデフォルト値はtrueです。

戻り値

filter_input_array()関数は、成功した場合には各変数の値を格納した配列を返し、失敗した場合にはfalseを返します。

使用例

次の例では、filter_input_array()関数を使って、POST変数であるstname(学生名)、stmarks(学生の点数)、stemail(学生のメールアドレス)の3つをまとめてフィルタリングしています。

<?php
   $filters = array (
      "stname" => array (
         "filter"=>FILTER_CALLBACK,
         "flags"=>FILTER_FORCE_ARRAY,
         "options"=>"ucwords"
      ),
      "stmarks" => array (
         "filter"=>FILTER_VALIDATE_INT,
         "options"=>array (
            "min_range"=>1,
            "max_range"=>100
         )
      ),
      "stemail"=> FILTER_VALIDATE_EMAIL,
   );
   print_r(filter_input_array(INPUT_POST, $filters));
?>

上記コードの出力結果は以下のとおりです。

Array (
   [stname] => Jack
   [stmarks] => 95
   [stemail] => jack@abcde.com
)

ポイント解説

  • stnameにはFILTER_CALLBACKを使い、「ucwords」関数によって各単語の先頭文字を大文字に変換しています。

  • stmarksにはFILTER_VALIDATE_INTを適用し、min_rangeとmax_rangeオプションにより1〜100の範囲内の整数のみ有効としています。

  • stemailにはFILTER_VALIDATE_EMAILを指定することで、メールアドレス形式の妥当性を検証しています。

このようにfilter_input_array()を活用すると、複数の外部変数に対するサニタイズやバリデーションを1回の呼び出しで完結でき、コードの可読性と保守性も向上します。ユーザー入力を扱う際は、セキュリティ対策として必ずフィルタ処理を行うことをおすすめします。

  1. 【PHP】array_rand()関数の使い方|配列からランダムなキーを取得する方法

    array_rand() 関数は、配列から1つ以上のランダムなキーを取得するためのPHP組み込み関数です。配列の中から要素を無作為に選びたい場合に便利で、くじ引きやシャッフル表示などの実装によく使われます。 基本構文 array_rand(array $array, int $num = 1) パラメータ arr(第1引数):対象となる配列を指定します。 count(第2引数):取得したいランダムキーの数を指定します。省略した場合はデフォルト値の 1 が適用されます。 戻り値 array_rand() 関数は、選択されたランダムなキーを返します。 第2引数が 1 の場合(または省略した場

  2. PHPのarray()関数とは?配列の作成方法をわかりやすく解説

    PHPのarray()関数は、配列を作成するための関数です。PHPにおける配列には、主に以下の3種類が存在します。インデックス配列 − 数値インデックス(0から始まる番号)で要素を管理する配列連想配列 − 文字列などの名前付きキーで要素を管理する配列多次元配列 − 配列の中に1つ以上の配列を含む、入れ子構造の配列構文// 数値インデックスを持つ配列(インデックス配列) array(value1, value2, ...); // 名前付きキーを持つ配列(連想配列) array(key1 => value1, key2 => value2, ...)パラメータvalue − 配列に