2014-04-14 14 views
0

PHP代碼的下面ideone.com給出2個錯誤PHP代碼filter_var_array()/ filter_input_array不能正常工作

「PHP警告的測試:filter_var_array(): '正則表達式' 選項缺少在/ home /RhLGYU/prog.php on line 18「

該行是$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' => '07' 
); 
$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); 

回答

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 
    ) 
) 
); 
+0

是的,這工程; thnx(!) – Joppo