<?php
//an example of simply sanitize an array..
$data = array(
'<b>bold</b>',
'<script>javascript</script>',
'P*}i@893746%%%p*.i.*}}|.dw<?php echo "echo works!!";?>');
$myinputs = filter_var_array($data,FILTER_SANITIZE_STRING);
var_dump($myinputs);
//OUTPUT:
//formarray(3) { [0]=> string(4) "bold" [1]=> string(10) "javascript" [2]=> string(26) "P*}i@893746%%%p*.i.*}}|.dw" }
?>filter_var_array
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
filter_var_array
Референца за `function.filter-var-array.php` со подобрена типографија и навигација.
filter_var_array
(PHP 5 >= 5.2.0, PHP 7, PHP 8)
filter_var_array — Зема повеќе променливи и опционално ги филтрира
= NULL
$array, array|int $options = FILTER_DEFAULT, bool $add_empty = true): array|false|null
Филтрирај асоцијативно array на вредности користејќи
FILTER_VALIDATE_*
филтри за валидација,
FILTER_SANITIZE_*
филтри за чистење, или сопствени филтри.
Параметри
array- Асоцијативен array што ги содржи податоците за филтрирање.
options-
Асоцијативна array на опции, или филтерот што треба да се примени на секој запис, што може да биде или филтер за валидација со користење на една од
FILTER_VALIDATE_*константите, или филтер за чистење со користење на една одFILTER_SANITIZE_*constants. Низата со опции е асоцијативна низа каде клучот одговара на клуч во податоцитеarrayи поврзаната вредност е или филтерот што треба да се примени на овој запис, или асоцијативна низа што опишува како и кој филтер треба да се примени на овој запис. Асоцијативната низа што опишува како се применува филтерот мора да ја содржи'filter'клучот чија поврзана вредност е филтерот што треба да се примени, што може да биде една одFILTER_VALIDATE_*,FILTER_SANITIZE_*,FILTER_UNSAFE_RAW, илиFILTER_CALLBACKконстантите. Може опционално да ја содржи'flags'клучот што специфицира и означува што се применува на филтерот, и'options'клучот што специфицира какви било опции што се применуваат на филтерот. add_empty-
Додај недостасувачки клучеви како
nullво вратената вредност.
Вратени вредности
Низа што ги содржи вредностите на бараните променливи при успех, или false
при неуспех. Вредност на низа ќе биде false ако филтерот не успее, или null ако променливата не е поставена.
Примери
ако е овозможен колекторот за отпадоци, filter_var_array() example
<?php
$data = [
'product_id' => 'libgd<script>',
'component' => '10',
'versions' => '2.0.33',
'testscalar' => ['2', '23', '10', '12'],
'testarray' => '2',
];
$filters = [
'product_id' => FILTER_SANITIZE_ENCODED,
'component' => [
'filter' => FILTER_VALIDATE_INT,
'flags' => FILTER_FORCE_ARRAY,
'options' => [
'min_range' => 1,
'max_range' => 10,
],
],
'versions' => [
'filter' => FILTER_SANITIZE_ENCODED
],
'testscalar' => [
'filter' => FILTER_VALIDATE_INT,
'flags' => FILTER_REQUIRE_SCALAR,
],
'testarray' => [
'filter' => FILTER_VALIDATE_INT,
'flags' => FILTER_FORCE_ARRAY,
],
'doesnotexist' => FILTER_VALIDATE_INT,
];
var_dump(filter_var_array($data, $filters));
?>Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
array(6) {
["product_id"]=>
string(17) "libgd%3Cscript%3E"
["component"]=>
array(1) {
[0]=>
int(10)
}
["versions"]=>
string(6) "2.0.33"
["testscalar"]=>
bool(false)
["testarray"]=>
array(1) {
[0]=>
int(2)
}
["doesnotexist"]=>
NULL
}
Види Исто така
- filter_input_array() - Добива надворешни променливи и опционално ги филтрира
- filter_var() - Провери за нумерички карактер(и)
- filter_input() - Добива специфична надворешна променлива по име и опционално ја филтрира
-
Филтри за валидација
FILTER_VALIDATE_* -
Филтри за чистење
FILTER_SANITIZE_*
Белешки од корисници 3 белешки
To apply the same filter to many params/keys, use array_fill_keys().
<?php
$data = array(
'product_id' => 'libgd<script>',
'component' => ' 10 ',
'versions' => '2.0.33',
'testscalar' => array('2', '23', '10', '12'),
'testarray' => '2',
);
$keys = array(
'product_id',
'component',
'versions',
'doesnotexist',
'testscalar',
'testarray'
);
$options = array(
'filter' => FILTER_CALLBACK,
'options' => function ($value) {
return trim(strip_tags($value));
},
);
$args = array_fill_keys($keys, $options);
/* Result
$args = array(
'product_id' => array(
'filter' => FILTER_CALLBACK,
'options' => function ($value) {
return trim(strip_tags($value));
},
),
'component' => array(
'filter' => FILTER_CALLBACK,
'options' => function ($value) {
return trim(strip_tags($value));
},
),
'versions' => array(
'filter' => FILTER_CALLBACK,
'options' => function ($value) {
return trim(strip_tags($value));
},
),
'doesnotexist' => array(
'filter' => FILTER_CALLBACK,
'options' => function ($value) {
return trim(strip_tags($value));
},
),
'testscalar' => array(
'filter' => FILTER_CALLBACK,
'options' => function ($value) {
return trim(strip_tags($value));
},
),
'testarray' => array(
'filter' => FILTER_CALLBACK,
'options' => function ($value) {
return trim(strip_tags($value));
},
),
);
*/
$myinputs = filter_var_array($data, $args);
var_dump($myinputs);
Output:
array(6) {
'product_id' =>
string(5) "libgd"
'component' =>
string(2) "10"
'versions' =>
string(6) "2.0.33"
'doesnotexist' =>
NULL
'testscalar' =>
array(4) {
[0] =>
string(1) "2"
[1] =>
string(2) "23"
[2] =>
string(2) "10"
[3] =>
string(2) "12"
}
'testarray' =>
string(1) "2"
}$emails = [
'a' => '[email protected]',
'b' => '<email2>@domain.com',
];
$result = filter_var_array($emails, FILTER_SANITIZE_EMAIL);
print_r($result);
// the result will be...
// array('a' => '[email protected]', 'b' => '[email protected]')