今では解決策を見つけたと確信していますが、完全を期すために...
基本的に、ドットを取り除かずにローカル部分をそのまま保存し、後で比較してアプリケーションとレジストリの両方からドットを取り除く必要があります。お気に入り:
$registered_emails[0]="e.xample@gmail.com"; //This is just to show how it was registered first time
$application_email="exam.ple@gmail.com"; //New application email
$discard=0; //flag for discarding application
if (preg_match("/@gmail.com$/i", $application_email)===1) {
$app_em=str_replace(".", "", $application_email);
foreach ($registered_emails as $reg_em)
if ($app_em==str_replace(".", "", $reg_em)) {
// "example@gmailcom"=="example@gmailcom"
$discard=1; // discard application
break;
}
//can't use an "else" clause here to break, as you need to loop through all registries
}
if ($discard==1)
echo "discard application";
else
array_push($registered_emails, $application_email); //register $application_email as is (exam.ple@gmail.com)
おそらく、前にすべての Gmail メールをリストから除外するか、すべての Gmail メールを脇に保管しておく価値があるかもしれません。確かに最もエレガントなソリューションではありませんが、おそらく最速のソリューションです