我收到错误:
Deprecated: Function eregi() is deprecated in C:\wamp\www\registration\class.register.php on line 75
使用我的代码::
if(empty($this->email) || !eregi('^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z]{2,4}$',$this->email))
我应该使用哪种替代方案以及如何实施它????
答案 0 :(得分:3)
正如@Sarfraz所说,ereg_*
函数已被弃用,您应该使用preg_*
代替。但是在这种情况下,您根本不应该使用正则表达式。有一个名为filter_var()
的功能,允许您验证一些流行的数据格式(电子邮件,URL等)。
if (empty($this->email) || false == filter_var($this->email, FILTER_VALIDATE_EMAIL)) {
// Empty or not valid email
}
答案 1 :(得分:2)
是ereg
家庭功能have been deprecated,您需要使用preg
家庭功能。在您的情况下,您应该使用preg_match
代替。
这段代码相当于:
if(empty($this->email) ||
!preg_match('~^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z]{2,4}$~i',
$this->email))
它也可以压缩为:
if(empty($this->email) || !preg_match('~^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,4}$~i',
$this->email))