2012-12-19 9 views
5

私はこのエラーメッセージを取得しています:するpreg_match()[function.pregマッチ]:不明な修飾

するpreg_match()[function.pregマッチ]:不明な修飾子 '=' での/ home/public_htmlのライン13

上/checkem.php私はこれを取得する次の行に移動:

<?php 
    //thx to http://www.phpit.net/code/valid-email/ for valid_email 
    function valid_email($email) { 
    // First, we check that there's one @ symbol, and that the lengths are right 
    if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email)) { 
     // Email invalid because wrong number of characters in one section, or wrong number @ symbols. 
     return false; 
    } 
    // Split it into sections to make life easier 
    $email_array = explode("@", $email); 
    $local_array = explode(".", $email_array[0]); 
    for ($i = 0; $i < sizeof($local_array); $i++) { 
     if (!preg_match("/^(([A-Za-z0-9!#$%&#038;'*+/=?^_`{|}~-][A-Za-z0-9!#$%&#038;14.'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$/", $local_array[$i])) { 
      return false; 
     } 
    } 
    if (!ereg("^\[?[0-9\.]+\]?$", $email_array[1])) { // Check if domain is IP. If not, it should be valid domain name 
     $domain_array = explode(".", $email_array[1]); 
      if (sizeof($domain_array) < 2) { 
       return false; // Not enough parts to domain 
      } 
     } 
    } 
?> 

eregpreg_matchに変更した後、が非推奨として表示されていたため、//でコードをラップしました。私はまだコーディングの初心者であり、どんな助けも大いに感謝されるでしょう。

答えて

0
preg_match("/^(([A-Za-z0-9!#$%&#038;'*+/=?^_`{|}~-][A-Za-z0-9!#$%&#038;14.'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$/ 
      ^      ^
      |       | 
      start      end 

あなたはそれが区切り文字でないとき\/として/を引用する必要があります。または、式に含まれていない区切り文字(@など)を選択します。

1

パターンの区切り文字の場合は、パターンのバックスラッシュでマスクする必要があります。また、PHP文字列のバックスラッシュもマスクする必要があります。

preg_match("/^(([A-Za-z0-9!#$%&#038;'*+/=?^_`{|}~-][A-Za-z0-9!#$%&#038;14.'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$/", $local_array[$i]) 

preg_match("/^(([A-Za-z0-9!#$%&#038;'*+\\/=?^_`{|}~-][A-Za-z0-9!#$%&#038;14.'*+\\/=?^_`{|}~\\.-]{0,63})|(\\"[^(\\\\|\\")]{0,62}\\"))$/", $local_array[$i]) 

BurninLeo

関連する問題