gpt4 book ai didi

PHP 5.4 : Can I use multiple flags with a filter using filter_var_array()?

转载 作者:可可西里 更新时间:2023-11-01 13:26:07 33 4
gpt4 key购买 nike

PHP Manual: filter_var_array()

mixed filter_var_array ( array $data [, mixed $definition [, bool $add_empty = true ]] )

对于 filter_var_array() 调用的 $definition 参数,这样的东西可以工作吗? (数组语法 >= PHP5.4)

   $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]],
];

在使用 filter_input_array() 时,一次只使用一个标志是唯一使用标志的方法吗?例如:(写得很长,虽然我可以用循环来做到这一点)。

   $def1 = [
'firstName' => ['filter' => FILTER_SANITIZE_STRING,
'flags' => FILTER_REQUIRE_SCALAR],
'lastName' => ['filter' => FILTER_SANITIZE_STRING,
'flags' => FILTER_REQUIRE_SCALAR]
];

$def2 = [
'firstName' => ['filter' => FILTER_SANITIZE_STRING,
'flags' => FILTER_FLAG_NO_ENCODE_QUOTES],
'lastName' => ['filter' => FILTER_SANITIZE_STRING,
'flags' => FILTER_FLAG_NO_ENCODE_QUOTES]
];

$def3 = [
'firstName' => ['filter' => FILTER_SANITIZE_STRING,
'flags' => FILTER_FLAG_STRIP_LOW],
'lastName' => ['filter' => FILTER_SANITIZE_STRING,
'flags' => FILTER_FLAG_STRIP_LOW]
];

$def4 = [
'firstName' => ['filter' => FILTER_SANITIZE_STRING,
'flags' => FILTER_FLAG_STRIP_HIGH],
'lastName' => ['filter' => FILTER_SANITIZE_STRING,
'flags' => FILTER_FLAG_STRIP_HIGH]
];

最佳答案

只要确保您没有将标志放在它们自己的数组中即可。选项可以在一个数组中,但标志需要被视为一个整体,由按位或运算符 (|) 分隔。

   $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]
];

关于PHP 5.4 : Can I use multiple flags with a filter using filter_var_array()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30172026/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com