我尝试了filter_var_array()
的各种组合和排列,但尚未找到答案:
给定一个相当大的关联数组,我需要将FILTER_SANITIZE_STRING
FILTER_FLAG_STRIP_LOW
标志应用于数组中的所有元素。
所以:
filter_var_array($my_big_array,FILTER_SANITIZE_STRING);
应用FILTER_SANITIZE_STRING
过滤器但没有FILTER_FLAG_STRIP_LOW
标记。
和...
filter_var_array($my_big_array,FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW);
出现错误。
是否可以使用filter_var_array()
轻松应用常用过滤器?
答案 0 :(得分:1)
Good filter_var_array() syntax
根据PHP手册,第二个filter_var_array()参数需要是一个正确的$定义。
示例:
确保不将标志放在自己的数组中。选项可以在数组中,但标记需要被视为由管道分隔的整个事物。
$def = [
'firstName' => ['filter' => FILTER_SANITIZE_STRING,
'flags' => FILTER_REQUIRE_SCALAR | FILTER_FLAG_NO_ENCODE_QUOTES | FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH],
'lastName' => ['filter' => FILTER_SANITIZE_STRING,
'flags' => FILTER_REQUIRE_SCALAR | FILTER_FLAG_NO_ENCODE_QUOTES | FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH]
];
答案 1 :(得分:0)
您应该能够通过二元运算符将它们组合起来,就像在FILTER_SANITIZE_STRING & FILTER_FLAG_STRIP_LOW
中一样,但我还没有测试过它。