PHPの「filter_var」関数の挙動について、お尋ねします。
EMailのローカルパート部には、以下の記号が使えると思います。
! # $ % & ' * + - / = ? ^ _ ` { | }
(ダブルクォートで括ったらもっと使える文字が増えるという話は一旦脇に置いといて)
filter_var関数のFILTER_VALIDATE_EMAILを使用して、
メールアドレスのフォーマットをチェックした場合、
同じメルアドが返ってきます。
一方、filter_varの「FILTER_SANITIZE_EMAIL」は、
「EMailで使えない文字が除去する」という仕様だと思うのですが、
同じEMailをかけてみると、何故かスラッシュが除去されてしまいます。
PHP
1$test1 = filter_var("!#$%&'*+-/=?^_`{|}~@example.com", FILTER_VALIDATE_EMAIL); // OK(同じメルアドが返ってくる) 2$test2 = filter_var("!#$%&'*+-/=?^_`{|}~@example.com", FILTER_SANITIZE_EMAIL); // スラッシュだけ欠落する。
なにか使い方・書き方が、おかしいせいでしょうか…?
開発環境
CentOS 7
Apache 2.4.34
PHP 7.4.25
よろしくお願い申し上げます。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/11/10 00:53