2010-08-22 49 views
2

我recieving错误:Eregi()不推荐使用PHP帮助?

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._-][email protected][a-zA-Z0-9._-]+\.[a-zA-Z]{2,4}$',$this->email)) 

我应该使用什么样的替代,我怎么能实现它????

回答

2

ereg家庭功能have been deprecated,您需要使用preg家庭功能代替。在你的情况下,你应该使用preg_match

这一段代码就相当于:

if(empty($this->email) || 
    !preg_match('~^[a-zA-Z0-9._-][email protected][a-zA-Z0-9._-]+\.[a-zA-Z]{2,4}$~i', 
    $this->email)) 

它也可以压缩到:

if(empty($this->email) || !preg_match('~^[\w.-][email protected][\w.-]+\.[a-zA-Z]{2,4}$~i', 
    $this->email)) 
3

正如@Sarfraz说ereg_*功能已被取消,你应该使用preg_*代替。但是在这种情况下,你根本不应该使用正则表达式。有一个叫filter_var()的功能,允许你验证一些流行的数据格式(电子邮件,URL等)

if (empty($this->email) || false == filter_var($this->email, FILTER_VALIDATE_EMAIL)) { 
    // Empty or not valid email 
} 
+0

notabede email是一个URL。 ;) – Crozin 2010-08-22 18:00:03