5

次のエラー メッセージが表示されます。

preg_match() [function.preg-match]: 行 13 の /home/public_html/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
            }
        }
    }
?>

非推奨として表示されていたため、コードを変更eregしてラップしました。私はまだコーディングの初心者であり、どんな助けでも大歓迎です。preg_match//ereg

4

2 に答える 2

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])

バーニンレオ

于 2012-12-19T09:48:13.093 に答える
0
preg_match("/^(([A-Za-z0-9!#$%&#038;'*+/=?^_`{|}~-][A-Za-z0-9!#$%&#038;14.'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$/
            ^                          ^
            |                          |
          start                       end

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

于 2012-12-19T09:46:29.400 に答える