2016-12-28 14 views
-1

私はw3schools PHPチュートリアルからPHPを勉強しています。私は、次のプログラムに出くわした章でFILTER_SANITIZE_EMAILが無効なメールアドレスから無効な文字を削除しないのはなぜですか?

についてPHPフィルタ

<!DOCTYPE html> 
    <html> 
     <body> 

     <?php 
     $email = "[email protected]"; 

     // Remove all illegal characters from email 
     $email = filter_var($email, FILTER_SANITIZE_EMAIL); 

     // Validate e-mail 
     if (!filter_var($email, FILTER_VALIDATE_EMAIL) === false) { 
      echo("$email is a valid email address"); 
     } else { 
      echo("$email is not a valid email address"); 
     } 
     ?> 

    </body> 
</html> 

W3Schoolsのは、そのにfilter_var()関数が最初かどうかを確認し、その後、$メール変数からすべての不正な文字を削除するために使用されていると言っています有効な電子メールアドレスです。

そしてIは「[email protected]#%%%%%.com」可変$emailの値を設定しようと次のように値を出力することを試みた:

<!DOCTYPE html> 
<html> 
    <body> 

    <?php 
    $email = "[email protected]#%%%%%.com"; 

    // Remove all illegal characters from email 
    $email = filter_var($email, FILTER_SANITIZE_EMAIL); 
    echo "Echoed Email : ".$email; die; 
    ?> 

    </body> 
</html> 

出力の上記のプログラムは、私が入力した文字列"[email protected]#%%%%%.com"です。

私の質問は、指定された無効なメールの無効な文字がw3schoolsに基づいて削除されていない理由です。

+0

人はまだw3fools.comを使用していますか? –

答えて

0

あなたの例では、メールが有効である、ので、

"FILTER_SANITIZE_EMAILは" "の#$%&「* + - =^_`!?。{|}〜@ []" できるようになります

チェックexceptions

0

FILTER_SANITIZE_EMAILは%文字を削除しません。 !?manualから:

文字、数字との#$%&「* +以外のすべての文字を削除 - =^_ `{|}〜@ []。。

実際に電子メールアドレスには多くの文字があります。

+0

FILTER_SANITIZE_EMAILがそれらを削除する文字のリストはどこで入手できますか? – user2839497

関連する問題