PHP 5.4: Is it possible to use multiple flags with a filter using filter_var_array ()?

PHP manual: filter_var_array ()

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

Could something like this for the argument $ of the filter_var_array() call work? (array syntax> = 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]], ]; 

Uses only one flag at a time, the only way to use flags when using filter_input_array() ? For example: (wrote a long way, although I could do it with a loop).

  $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] ]; 
+6
source share
1 answer

Just make sure you don't put flags in your own array. Parameters can be in an array, but flags should be considered as one whole thing, separated by the bitwise operator OR ( | ).

  $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] ]; 
+3
source

Source: https://habr.com/ru/post/986983/


All Articles