2010-08-22 12 views
2

Je RECEVOIR l'erreur:Eregi() Aide php obsolète?

Deprecated: Function eregi() is deprecated in C:\wamp\www\registration\class.register.php on line 75 

avec mon code ::

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

Quelle alternative dois-je utiliser et comment puis-je mettre en œuvre ????

Répondre

2

Oui ereg fonctions de la famille have been deprecated, vous devez utiliser les fonctions de famille preg à la place. Dans votre cas, vous devez utiliser preg_match à la place.

Ce morceau de code est équivalent à:

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

Il peut également être compactés à:

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

Comme @Sarfraz dit ereg_* fonctions sont dépréciées et vous devez utiliser preg_* à la place. Cependant, dans ce cas, vous ne devriez pas utiliser d'expressions régulières. Il est fonction appelée filter_var() qui vous permet de valider certains formats de données populaires (e-mails, etc.) URL

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

Notabede email est une URL. ;) – Crozin