filter_input_array (php) 条目的两个可能过滤器
two possible filters for entry of filter_input_array (php)
我想检查一个数组的值是否是电子邮件地址或适合正则表达式。
如果有两个过滤器一起可以完全满足我的要求:
- 是否可以使用这两个现有过滤器,如果第一个不适合,请检查第二个是否适合?
- 还是我必须创建一个 filter callbac?
创建用例:
登录情况,您可以使用电子邮件地址或用户名,但两者的输入字段相同。
伪代码:
$options = [
'username' =>
[
'options' => [
'filter' => FILTER_VALIDATE_EMAIL | FILTER_VALIDATE_REGEXP,
'regexp' => '/([A-Za-z0-9_-]{1,25})/'],
],
];
$filteredPost = filter_input_array(INPUT_POST, $options);
如果这样的事情是可能的,怎么做?
我认为您不能像这样组合多个过滤器 -- 您只能使用 |
将过滤器与标志组合起来。
此外,您还没有正确构成选项数组。正则表达式需要进一步嵌套。
$options = [
'username' => [
'filter' => FILTER_VALIDATE_EMAIL | FILTER_VALIDATE_REGEXP,
'options' => [
'regexp' => '/([A-Za-z0-9_-]{1,25})/'],
],
];
$options
的每个元素都是一个包含 filter
和 options
键的数组。
我想检查一个数组的值是否是电子邮件地址或适合正则表达式。
如果有两个过滤器一起可以完全满足我的要求:
- 是否可以使用这两个现有过滤器,如果第一个不适合,请检查第二个是否适合?
- 还是我必须创建一个 filter callbac?
创建用例: 登录情况,您可以使用电子邮件地址或用户名,但两者的输入字段相同。
伪代码:
$options = [
'username' =>
[
'options' => [
'filter' => FILTER_VALIDATE_EMAIL | FILTER_VALIDATE_REGEXP,
'regexp' => '/([A-Za-z0-9_-]{1,25})/'],
],
];
$filteredPost = filter_input_array(INPUT_POST, $options);
如果这样的事情是可能的,怎么做?
我认为您不能像这样组合多个过滤器 -- 您只能使用 |
将过滤器与标志组合起来。
此外,您还没有正确构成选项数组。正则表达式需要进一步嵌套。
$options = [
'username' => [
'filter' => FILTER_VALIDATE_EMAIL | FILTER_VALIDATE_REGEXP,
'options' => [
'regexp' => '/([A-Za-z0-9_-]{1,25})/'],
],
];
$options
的每个元素都是一个包含 filter
和 options
键的数组。