I used to use eregi for validating email address input that matches to the regular expression.
<?php if (!eregi("^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$", $str)) { $msg = 'email is not valid'; } else { $valid = true; } ?>
That would return true if given email address is matches to username@domain.ext pattern. Unfortunately, after upgrading PHP to the earlier version (5.3.0), it wont work properly. This is because eregi is one of several functions that are deprecated in the new version of PHP.
Solution:
Use preg_match with the ‘i’ modifier instead. i means that regular expression is case insensitive. So the code become like this:
<?php if (!preg_match("/^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$/i", $str)) { $msg = 'email is not valid'; } else { $valid = true; }?>