filter_input_array în PHP

Citește și validează deodată mai mulți parametri din cererea HTTP (GET, POST, cookie), după o schemă de filtre.

Sintaxă
filter_input_array(int $type, array|int $options = FILTER_DEFAULT, bool $add_empty = true): array|false|null

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, $filtre este null. 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.