3v4l.org

run code in 150+ php & hhvm versions
Bugs & Features
<?php $email = 'johnsnow123@ヒキワリ.ナットウ.fr'; $email = 'johnsnow123@foo.bar.zoosk.fr'; $localAndDomain = explode('@', $email); if (count($localAndDomain) !== 2) { echo 'invalid'; return; } $local = $localAndDomain[0]; $localExpression = '^[a-z0-9_-]+(?:[a-z0-9._%+-]+)*$'; if (mb_eregi($localExpression, $local) === false) { echo 'invalid'; return; } // Handle IDN domains $domain = $localAndDomain[1]; $domain = str_replace('xn--', '', idn_to_ascii($domain)); $dictionary = array('aero', 'arpa', 'asia', 'biz', 'cat', 'com', 'coop', 'edu', 'gov', 'info', 'int', 'jobs', 'mil', 'mobi', 'museum', 'name', 'net', 'org', 'pro', 'tel', 'travel'); $domainExpression = '^(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+(?:[A-Z]{2}|' . implode('|', $dictionary) . ')$'; if (mb_eregi($domainExpression, $domain) === false) { echo 'invalid'; return; } echo 'valid';
Output for 5.4.34 - 5.5.28, 5.5.31 - 5.5.33, 5.5.35 - 5.6.12, 5.6.16 - 5.6.19, 5.6.21 - 5.6.28, hhvm-3.10.0 - 3.12.0, 7.0.0 - 7.0.4, 7.0.6 - 7.1.0
valid
Output for 7.0.5
Fatal error: Uncaught Error: Call to undefined function idn_to_ascii() in /in/YQ95V:21 Stack trace: #0 {main} thrown in /in/YQ95V on line 21
Process exited with code 255.
Output for 5.0.0 - 5.4.32, 5.5.29 - 5.5.30, 5.5.34, 5.6.13 - 5.6.15, 5.6.20
Fatal error: Call to undefined function idn_to_ascii() in /in/YQ95V on line 21
Process exited with code 255.
Output for 4.4.5 - 4.4.9
Fatal error: Call to undefined function: idn_to_ascii() in /in/YQ95V on line 21
Process exited with code 255.
Output for 4.3.4 - 4.4.4
Fatal error: Call to undefined function: idn_to_ascii() in /in/YQ95V on line 21
Process exited with code 255.
Output for 4.3.2 - 4.3.3
Fatal error: Call to undefined function: mb_eregi() in /in/YQ95V on line 14
Process exited with code 255.
Output for 4.3.0 - 4.3.1
Fatal error: Call to undefined function: mb_eregi() in /in/YQ95V on line 14