使用ideone.com测试下面的php代码会产生2个错误
" PHP警告:filter_var_array():' regexp'第18行和第34行/home/RhLGYU/prog.php中缺少选项;
该行为$myinputs = filter_var_array($data, $args)
。
这可能是我的初学者经历,但我不理解错误信息,例如,我不知道下面的代码出了什么问题。我检查了2个正则表达式定义(REGEXP_MULTIPLE_NAMES
,REGEXP_PHONE_NL
),它们没问题。
我怀疑$args
的定义中存在错误,但我无法找到它(当我与http://www.w3schools.com/Php/filter_validate_regexp.asp中的示例进行比较时)。
PHP代码:
define("REGEXP_MULTIPLE_NAMES", "/^[a-zA-Z\s-]+$/i");
//Expression to check Dutch phone numbers. Number must start with zero and number of digits should be 10. Different area and country codes are allowed.
define("REGEXP_PHONE_NL", "/(^\+[0-9]{2}|^\+[0-9]{2}\(0\)|^\(\+[0-9]{2}\)\(0\)|^00[0-9]{2}|^0)([0-9]{9}$|[0-9\-\s]{10}$)/");
$data = array(
'city' => 'The hague',
'telephonenr' => '0701234567'
);
$args = array(
'city' => array(
'filter' => FILTER_VALIDATE_REGEXP,
array(
"options" => array(
"regexp" => REGEXP_MULTIPLE_NAMES
)
)
),
'telephonenr' => array(
'filter' => FILTER_VALIDATE_REGEXP,
array(
'options' => array(
"regexp" => REGEXP_PHONE_NL
)
)
)
);
$myinputs = filter_var_array($data, $args);
print_r($myinputs);
答案 0 :(得分:2)
查看php手册我认为它的结构如下:
$args = array(
'city' => array(
'filter' => FILTER_VALIDATE_REGEXP,
'options' => array(
"regexp" => REGEXP_MULTIPLE_NAMES
)
),
'telephonenr' => array(
'filter' => FILTER_VALIDATE_REGEXP,
'options' => array(
"regexp" => REGEXP_PHONE_NL
)
)
);