3v4l.org

run code in 300+ PHP versions simultaneously
<?php $local = 'johnsnow123@ヒキワリ.ナットウ.ニホン'; $localAndDomain = explode('@', $email); if (count($localAndDomain) !== 2) { echo 'invalid'; } $local = $localAndDomain[0]; $localExpression = '^[a-z0-9_-]+(?:[a-z0-9._%+-]+)*$'; if (mb_eregi($localExpression, $local) === false) { echo 'invalid'; } // Handle IDN domains $domain = $localAndDomain[1]; $domain = str_replace('xn--', '', idn_to_ascii($domain)); $dictionary = Helper::$VALID_DOMAINS; $domainExpression = '^(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+(?:[A-Z]{2}|' . implode('|', $dictionary) . ')$'; if (mb_eregi($domainExpression, $domain) === false) { echo 'invalid'; } echo 'valid';

preferences:
41.64 ms | 402 KiB | 5 Q