فیلتر ورودی های چندگانه ی
یک فرم HTML همیشه از بیش از یک فیلد ورودی تشکیل شده است. برای جلوگیری ازچندین بار فراخوانی توابع filter_var یا filter_input ٫ ما می توانیم توابع filter_var_array یا filter_input_array را استفاده کنیم.
مثال: در این مثال ما تابع filter_input_array را برای فیلترکردن سه متغیر که با استفاده از متد GET ارسال شده اند استفاده می کنیم.(نام، سن و آدرس ایمیل)
<?php
$filters = array("name" => array("filter"=>FILTER_SANITIZE_STRING),
"age" => array("filter"=>FILTER_VALIDATE_INT,
"options"=>array("min_range"=>1,"max_range"=>120)),
"email"=> FILTER_VALIDATE_EMAIL);
$result = filter_input_array(INPUT_GET, $filters);
if (!$result["age"])
{
echo("Age must be a number between 1 and 120.<br />");
}
elseif(!$result["email"])
{
echo("E-Mail is not valid.<br />");
}
else
{
echo("User input is valid");
}
?>
توضیح مثال:
مثال بالا سه ورودی (name,age,email) دارد که با استفاده از متد "GET" به آن ارسال شده است:
- یک آرایه شامل نام متغیرهای ورودی و فیلترهای مصرفی برای متغیرهای ورودی مشخص شده است.
- تابع ()filter_input_array را همراه با متغیرهای ورودی GET و آرایه ای که تعیین کردیم فراخوانی می کنیم.
- متغیرهای "email" و "age" را برای ورودی های نامعتبر در متغیر result$ چک می کند.(اگر هرکدام از متغیرهای ورودی نامعتبر باشند٫ آن متغیر ورودی پس از تابع ()filter_input_array برابر با FALSE قرار خواهد گرفت)
توجه: پارامتر دوم تابع ()filter_input_array می تواند یک آرایه یا یک صافی خاص باشد. اگر پارامتر یک صافی یا فیلتر خاص باشد تمام مقادیر در آرایه ی ورودی بوسیله ی صافی مشخص شده فیلتر می شوند، اگر پارامتر یک آرایه است باید قواعد زیر را دنبال کند:
- باید یک آرایه ی انجمنی باشد.(PHP Arrays)
- کلید یا ایندکس آرایه باید با نام ورودی ها یکی باشد.
- مقدار آرایه باید یک صافی خاص یا یک آرایه دیگر شامل صافی و flagها و optionها باشد.