Web アプリケーションの普及に伴い、セキュリティ問題への注目がますます高まっています。重要なセキュリティ対策の 1 つは、ユーザーが入力したデータをフィルタリングして検証することです。 PHP には一連のフィルター関数が用意されており、その中には非常に実用的な関数、filter_var_array() があります。この機能は複数のデータを同時にフィルタリングすることができ、非常に効率的で便利なツールです。この記事では、この関数の使い方を詳しく紹介し、具体的なコード例を示します。
filter_var_array() 関数は、複数のデータをフィルタリングするために使用されます。その基本構文は次のとおりです:
filter_var_array ( array $data [, mixed $definition [, bool $add_empty = true ]] ) : array
このうち、$data はフィルタリングするデータを表し、連想配列である必要があります。 $defining はフィルタリング ルールを表し、配列または定数を指定できます。 $add_empty は、空の文字列を含めるかどうかを示します。
この関数は、フィルター処理されたデータを返します。これも連想配列です。
次に、ユーザー名、パスワード、電子メール アドレスの 3 つの入力ボックスを含むフォームがあるとします。 。これら 3 つの入力ボックス内のデータをフィルタリングして検証し、データベースに保存する前にデータが正しい形式であることを確認する必要があります。以下は、filter_var_array() 関数を使用してこのタスクを実行するコードです。
<?php //从表单中获取数据 $username = $_POST['username']; $password = $_POST['password']; $email = $_POST['email']; //定义过滤规则 $definition = array( 'username' => FILTER_SANITIZE_STRING, 'password' => FILTER_SANITIZE_STRING, 'email' => FILTER_VALIDATE_EMAIL ); //使用filter_var_array()函数过滤数据 $data = filter_var_array(array( 'username' => $username, 'password' => $password, 'email' => $email ), $definition); //判断用户输入是否合法 if($data['username'] && $data['password'] && $data['email']){ //存储到数据库中 //... }else{ //提示用户输入不合法 //... } ?>
上記のコードでは、最初に 3 つの変数 $username、$password、$email がフォームから取得されます。次に $defining 配列を定義しました。この配列では、「ユーザー名」と「パスワード」のフィルタリング ルールが FILTER_SANITIZE_STRING (ラベルと特殊文字の削除)、「電子メール」のフィルタリング ルールが FILTER_VALIDATE_EMAIL (正当な電子メール アドレスであるかどうかの確認) です。 )。
次に、取得した 3 つの変数と定義した $defining 配列を filter_var_array() 関数に渡し、返された結果を $data 配列に保存します。最後に、$data 配列の 3 つの要素が空でないかどうかを確認します。空でない場合は、データをデータベースに保存できます。空でない場合は、入力が不正であることを示すプロンプトがユーザーに表示されます。
上記のコード例を通じて、filter_var_array() 関数が効率的かつ便利であり、複数のデータを簡単にフィルタリングして検証できることがわかります。
上の例では、FILTER_SANITIZE_STRING と FILTER_VALIDATE_EMAIL という 2 つのフィルター定数を使用しました。これら 2 つの定数は、filter_var() 関数で定義されています。または、filter_var_array() 関数で直接使用することもできます。ただし、これら 2 つの定数に加えて、filter_var_array() 関数には使用できる他の多くの定数があります。一般的に使用されるフィルター定数の一部を次に示します。
以上がPHP の filter_var_array() 関数を使用して、複数のユーザーが入力したデータをフィルタリングします。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。