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