Ce face filter_input_array
filter_input_array este pentru filter_input ce este filter_var_array pentru filter_var: primește sursa (INPUT_GET, INPUT_POST…) și o schemă de filtre pe chei.
Ca și filter_input, citește datele originale ale cererii, nu variabilele $_GET/$_POST. Dacă sursa nu are niciun parametru, rezultatul este null; în linia de comandă este mereu null.
Parametri
| Parametru | Descriere |
|---|---|
$type |
Sursa: INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER, INPUT_ENV. |
$options |
Schema de filtre pe chei, sau un singur filtru. |
$add_empty |
Opțional. false nu adaugă cheile lipsă. |
Ce returnează
Tabloul cu valorile filtrate, false la eroare, sau null dacă sursa nu are date.
Exemple
Exemplul 1: Filtrele unei pagini de căutare
Pagina a fost deschisă cu /cauta?q=laptop&pagina=2&pret_max=abc.
<?php
$filtre = filter_input_array(INPUT_GET, [
"q" => FILTER_DEFAULT,
"pagina" => ["filter" => FILTER_VALIDATE_INT, "options" => ["min_range" => 1]],
"pret_max" => FILTER_VALIDATE_INT,
"sortare" => FILTER_DEFAULT,
]);
var_dump($filtre);
Rezultat în browser
array(4) {
["q"]=>
string(6) "laptop"
["pagina"]=>
int(2)
["pret_max"]=>
bool(false)
["sortare"]=>
NULL
}
Greșeli frecvente
- Iei rezultatul direct ca tablou:
$filtre["q"]. Dacă pagina e deschisă fără parametri,$filtreestenull. Folosește$filtre["q"] ?? "".
Comenzi înrudite
filter_input / filter_has_var: Citește o valoare direct din cererea HTTP (GET, POST, cookie) și o validează, într-un singur pas.filter_var_array: Validează mai multe valori dintr-un tablou deodată, fiecare cu filtrul ei, de exemplu toate câmpurile unui formular.