- filter_var: documentation ( source)
- str_replace: documentation ( source)
<?php
$email = 'johnsnow@ヒキワリ.ナットウ.asia';
$email = str_replace('@-', '@', idn_to_ascii($email));
echo $email . "\n";
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo 'valid';
} else {
echo 'not valid';
}