Ce face filter_var_array
filter_var_array aplică filter_var pe mai multe chei. Al doilea parametru este o „schemă”: pentru fiecare cheie, un filtru (FILTER_VALIDATE_EMAIL) sau un tablou cu filter, options și flags. Dacă dai un singur filtru, se aplică tuturor valorilor.
Rezultatul conține doar cheile din schemă. Valorile invalide devin false, iar cheile care lipsesc din date devin null (sau sunt omise, cu $add_empty = false). Pentru o cheie care trebuie să fie tablou, folosește FILTER_REQUIRE_ARRAY.
Parametri
| Parametru | Descriere |
|---|---|
$array |
Datele de validat, de exemplu $_POST. |
$options |
Schema de filtre pe chei, sau un singur filtru pentru toate valorile. |
$add_empty |
Opțional. false nu adaugă în rezultat cheile lipsă. |
Ce returnează
Tabloul cu valorile filtrate, sau false la eroare.
Exemple
Exemplul 1: Validarea unui formular de înscriere
<?php
$date = ["email" => "ana@exemplu.ro", "varsta" => "17", "site" => "dexblog", "tag" => ["php", "12"]];
$rezultat = filter_var_array($date, [
"email" => FILTER_VALIDATE_EMAIL,
"varsta" => ["filter" => FILTER_VALIDATE_INT, "options" => ["min_range" => 18]],
"site" => FILTER_VALIDATE_URL,
"telefon" => FILTER_DEFAULT,
"tag" => ["filter" => FILTER_VALIDATE_INT, "flags" => FILTER_REQUIRE_ARRAY],
]);
var_dump($rezultat);
Rezultat
array(5) {
["email"]=>
string(14) "ana@exemplu.ro"
["varsta"]=>
bool(false)
["site"]=>
bool(false)
["telefon"]=>
NULL
["tag"]=>
array(2) {
[0]=>
bool(false)
[1]=>
int(12)
}
}
Exemplul 2: Același filtru pentru toate valorile
<?php
var_dump(filter_var_array(["cantitate" => "3", "pret" => "x"], FILTER_VALIDATE_INT));
Rezultat
array(2) {
["cantitate"]=>
int(3)
["pret"]=>
bool(false)
}
Greșeli frecvente
- Te aștepți să regăsești în rezultat toate câmpurile din formular. Apar doar cheile din schemă; restul sunt eliminate, ceea ce e de fapt o protecție.
Comenzi înrudite
filter_var: Validează sau curăță o valoare: email, număr întreg, URL, adresă IP, valoare booleană.filter_input_array: Citește și validează deodată mai mulți parametri din cererea HTTP (GET, POST, cookie), după o schemă de filtre.filter_input / filter_has_var: Citește o valoare direct din cererea HTTP (GET, POST, cookie) și o validează, într-un singur pas.